Thankfully by now we are more and more replacing these Windows CE things with iphones plus sleeves with barcode scanners which gives us a nicer API and the end user gets a much cooler device to work with.
The .NET Compact Framework is a beast: It's extremely slow and still it happens more often than not that you need something, you check the documentation, you find it, only to read that it's only supported on the desktop.
And don't get me started on the development/run/debug cycle: Both the emulator and the actual device are slow and after the 200st time that crappy assistant offered me to register my barcode scanner or even emulator(!) with Microsoft, I lost all the love that might still have been left.
Oh. And the SDKs for the scanners have this distinct feeling of being software written by hardware people when I look at how "convenient" they are to use. My personal favorite: The driver that hard-crashes the device whenever you terminate the application from the debugger. Yeah. Hit that stop-button you are used to and you'll have to wait through another 3 minute reboot cycle.
You iphone and android people have it so nice </cranky>
The SDK is definitely done by hardware-people too.
http://ipclineapro.com/ is much better but also significantly more expensive. It's a sleeve you put your iphone in. It has a cool SDK and the build-quality is very convincing. As this uses the dock connector, there's no pairing issues either.
What ever you do: If you want to publish that app in the app store, be prepared for another hurdle, because if you are using any of these devices, you are not only dealing with apple approval, but also with approval by the device maker.
And you'll sign NDAs with both Apple and the device maker.
In that regards, WindowsCE is much nicer. You buy the device, you buy Visual Studio, you develop. No need to ask anyone for permission.
"Analyst estimates place the total number of devices shipped with S40 close to 1.5 billion, as of the end of 2010" 
If webOS hardware comes back, I'd love to develop more apps for webOS, though.
Canvas is definitely on a slow-but-steady rise in popularity - there are a lot more questions each day on SO than there were a year ago. It's kind of nice to watch it grow, in a way.
I picked "Mobile-friendly Web development" though amusingly Canvas works in strangely different ways on mobile devices/different browsers, so it's more "mobile friendly" than Flash but still not quite the friendliest thing!
For my spare time I work on my 2d android mmorpg: http://developingthedream.blogspot.com/
1) The other OSs are fragmented. If you develop a phenomenal app on one, it may not function the same on the others.
2) Your customers are self-selected as having a higher discretionary income than the other OSs, thus resulting in you making more money.
To get more of a feel of what you're in for, check out this forum post + Java sample code:
I think the main problem is getting ahold of the SDK.
I thought it was a variety of J2ME they used.
While Android and iOS have great Tools, I still hope RIM is going to release a great Native SDK for QNX.
The first two are so much nicer to develop for due to tooling, webOS is pretty nice but perhaps a dead end!
Hundreds of thousands of consumers have recently gotten their hands on a Touchpad, and the HP store has so little new content coming into it that competition is pretty much non-existent. There are also plenty of gaps that are entirely unexploited by existing apps that haven't been found in iOS/Android since they launched.