Firstly, developers and apps. Yes, Android supports open development out of the box, but that's meaningless if there's no develooers supporting it. For evidence of this, there's a study comparing the success of the same popular app in the App Store vs. the Android Market here.
Second, it's branding. Yes, I know Android is made by Google and all, but if the standard consumer is thinking of getting a smartphone, the first name they think of is not "Google" or "Android", but is a lot more likely to be "Apple" or "iPhone". As you can see here, this was even true in 2007. This is because Google is seen more as "the thing you use to find things online" than "phone company", whereas Apple has a very well established brand for gadgets.
Another thing that comes under branding is the name. If a device has an established name, it has the potential to be popular. This is why almost everyone has heard of the name "iPhone". However, if you ask someone about the "HTC Hero" or the "T-Mobile SPV G500" (because, of course, almost every HTC device is re-branded by the networks), they won't have a clue what you're on about. This also ties in a fair bit with the previous paragraph.
I actually think the only reason the iPhone OS is significantly more popular than Android is 1) Apple's huge headstart (Android wasn't released until Q4 2008, iPhone OS was released Q2 2007) and 2) marketing (iPhone adverts pop up on TV several times a day, amongst other methods)
The iPhone was also the first smart phone of its kind; everyone else followed suit after they saw how great a phone it was.
Apple use underhanded advertising methods to get customers and they have ridiculous advertising budgets. An entire TV advert dedicated to a copy/paste feature that has been present in other phones for 10+ years... Apple can take any old feature and make it sound great. Another underhanded tactic - https://forums.macrumors.com/threads/804573/ - this looks like the iPhone can handle flash, but we all know it can't!
The iPhone does not win on merit, it wins on marketing trickery.
For a good example of how much more open Android is, just have a look at the HTC Sense UI.. that's an entire new GUI built on top of Android.