Remember though, most of the developers who are doing work that actually matters on mobile aren't doing it because they want do, they're doing it because a corporate strategist thought it would be profitable use of their time.
An iOS app I'm working on right now has been a nightmare in comparison because we had to port our layouts to the i5 form factor but can't require iOS 6 just to get autologous. Apple really blew that transition.
Also, you can say that the API level differences don't matter because they are hidden by compatibility libraries like The Support Package, but the truth is that those are just the newer APIs re-implemented against the old interfaces. You pay for that extra abstraction with wasted cycles and bloat, and it's an ugly solution. Even still, those libraries aren't perfect: there have been subtle bugs or incompatibilities introduced by their use which are notoriously hard to find. Finally, even if the newer APIs are present on the device, The Support Library will still be used (last I checked, though I think they are working on this).
Less objectively, it's a matter of preference. Some people just prefer objective C to a JVM compilable language.
The emulator is atrociously slow and every manufacturer seems to have different implementations of UI controls meaning it is expensive and time consuming to test.