The easy obstacles:
Performance. Two more layers of abstraction make browser apps clunky. This will go away when phones get beefier.
Security. In Wonderland apps ask for permissions, app stores check for vulnerabilities and abuse, users read permissions and allow. In Real-land, click-buy-install-use. Browsers can also ask/warn users regarding permissions and features.
Phone Features. Can the browser access the camera, local storage, gps, address book, etc....yes, the browser is a 'native' app, it can have super powers; and then let HMTL5 use them.
The almost-impossible obstacle: the market.
If you are old enough you'll remember that Windows grew like yeast b/c it had Office and that Mac kept its niche b/c it had 'designer software'. Fast forward 20 years and FF OS cannot grow as it wished b/c the phones do not run Whatsapp, the new SMS. Ergo: the apps available weight more in the purchase decision than HW or brand. So, the platform owners will do as much as possible to keep things native b/c if anything runs on anything, and if harware is mostly the same on all phones, what is the differentiator?
Did you know that only a year ago it was possible tu create a native app with basically two features: push notifications and a webview. Inside the webview you could run your web app. Now appstores reject these type of apps, they require x% of the code base/features to be native (I believe x is changing, maybe is 50 now?).