Firstly a browser based application is always going to suck because it's based in a browser. Reflect on that, it's an application running on an OS inside an OS. It doesn't matter how fast it gets, it's a subset of a subset of controls.
Secondly, and this I'm not so confident about, but still believe in. Browsers have sucked at apps for the last 10 years and are going to suck for another 10 years because the HTML standards committees move so slooooooooooooowwwwwwwwwwwwwwwwwwwwww. That's why Flash dominated and why native apps are going to dominate. HTML finally has moved to take on Flash just as Native Apps killed flash. They're a whole generation behind!
And the third reason? It's all based on javascript. It is practically impossible at the moment for normal programmers to write medium complexity javascript. ECMA 5 has been released with a whimper instead of a bang. It's pathetic. So anything written as a web app will be inferior to the much more manageable programming languages on the native apps, even though it's [cry] Obj-C and Java. Javascript is an order of magnitude worse for complex apps than those two.
Finally, the growing number of OSes. It ultimately means a growing variance in the quality, speed and modernness of HTML implementations and support, you're always going to get an edge going native on every OS. Previously we had Windows. Then Windows and a little Mac. Then Windows, Mac & iOS. Then Windows, Mac, iOS, Android. Then Windows XP, Windows Vista+, Mac, iOS, Android 2, ICS, Kindle Fire, etc. The OS market is fragmenting.