OEMs and carriers shove in their own apps (Samsung is especially bad about this: I don't want two apps for photos, and files, and messages, and calling, and browsing, etc etc). You can (sometimes) disable or uninstall them, but they can pop up again after updates, and I don't want to have to clean up my device just to use it.
And visually, apps look and feel radically different, all over the place. There are apps that still look like they're running on Jelly Bean, apps that use modern material designs, apps that roll their own UI, and web apps in wrappers. Every new app I have to learn how to use it. This is an occasional problem on iOS, but it's very rare compared to my experience with it on Android.
I also don't see iOS and Android having much of a usability gap. At this point, they have very similar feature sets, and the UX is fairly well-polished, even on Android -- where yes, it took them a lot longer to get there. For the most part, if you think that either platform has bad UX, it's probably just because you've used the other one for so long, and you're used to it. (I don't think iPhone usability is bad, but on the rare occasion I do something on my wife's iPhone, I find it frustrating because it just works differently than my Android phone.)
At this point I think most (US; can't speak for other countries) iPhone users are there mainly because they've always been there, and there's fairly strong lock-in and switching costs. And iPhones are still something of a status symbol, not to mention unnecessary Apple-created problems like the "blue bubble envy" nonsense.
Or perhaps it's because we like iPhones?