Similar sets of features -- they have the usual I2C/SPI/etc. you'd expect. The BeagleBoard has a connector that's compatible with the same sort of camera input that DCMI can take on STM32. Things are pretty nice especially if you're using more recent versions of the kernel, as a lot of the Android patches that are making it into Linus's tree are nice for embedded work (one-shot LED timers, etc.)
The downside is the usual trade-off you make when giving up full control of the machine: you have to go through the kernel (lots of peripherals are accessed in userspace through sysfs), and you have to deal with the fact that your process is just one of many.
I've never used it, and I don't understand the sweet spot uClinux sits in. It must have a use, since so many people seem to like it. But it seems to me that if you want simplicity or or full/nearly full control over the machine, use a uC (maybe with an RTOS), and if you want all the convenience and complexity of Linux, then get a real Linux board, so you can get the gigs of Flash and hundreds of MB of memory that those offer. uClinux seems like neither fish nor fowl to me. Can anyone explain? Is it like having a nice RTOS with some of the familiar Linux interfaces?