Just to say this up front lest I start another Android phone v. iPhone debate: I have used both, and enjoyed both experiences
But on the subject of hardware. At the moment it makes more sense to write codes for Android apps in Java than in native codes. Which means it has to go through Dalvik. I know Google made serious effort in Project Butter to smoothen user experience, but having to go through a virtual machine seems like an innate hurdle for Android in this fierce competition.
Also, on the subject of security, a non-JB iPhone is more secure than a non-rooted Android phone. Yes, I know a lot can be done after rooting, but what about phones as-is?
Sometimes I feel like this comparison is moot because we are comparing two very different things, from design's POV. They are both called "phones," but they are more different than similar (IMHO).