Fragmentation is a big issue when it comes to mobile
development, especially when developing for Android.
Fragmentation happens when a percentage of phone owners are on
legacy versions of the operating system who can't/haven't updated.
(In the case of Android its mostly that users can't update, and for
iOS is mostly because the user hasn't updated).
If we look at the current number of users on the very latest
versions of the operating systems throughout Android, iPhone and
Blackberry* we can see there is a major difference.

On Android, only 10.3% of users are on the latest version
(4.2 and above), despite it being out for 2 months. This is
actually a lot better than previous versions which took 7 months to
reach 10% for Ice Cream Sandwich.

The main cause of this is the fact that manufacturers are left
with the job of upgrading their UI and releasing it to older
phones. Sometimes people will not ever get an upgrade because their
phone's hardware is out dated or because there is a newer version
of the phone's model out with the newer operating system which the
manufacturer wants users to upgrade to. This (obviously) causes a
lot of fragmentation because most users don't want to have to pay
out every year for an upgrade. Another reason is because the
software is not available for that country yet. As it stood, I
didn't get the update for ICS (4.0) for my phone (Samsung Galaxy S2
I had for 5 months) until 4 months later.
If we look at the iPhone, 87.9% are on 6.0 and above. Obviously,
this makes developing for iPhone a lot easier because it means new
API's can be taken advantage of and legacy API's can be deprecated
from the app. It gives more consistency for the developer.
(I'm not even going to go into Blackberry because there are just
too many versions to even comprehend.)

The main reason why iOS is ahead of Android (and always will be)
is because of the fact that updates are rolled out to users as soon
as they are available. There is only 1 phone with 1 screen size (or
2, including retina) and most of the time users are always up to
date.
The only way for Android to catch up would be if Google managed
the operating system themselves and the manufacturer rolled out
their UI on top; this way everyone will always be on the latest
version of Android (if the phone supports it) and the only thing
users will have to wait for (if anything) would be any UI
changes.
*Sources: our internal stats for the app 'First Aid by
British Red Cross' (427,556 downloads)