For the most part, application designers and engineers are drawn to native application because it allows full access to the hardware features and native user experience. In the end, you’ll ended up with prettier, more responsive, and easier to use application.
But one of the big advantage of Web app over native app is the easy of quick deployment, and potentially roll back of features and functionalities without going through the application marketplace (ie iTunes or Google Play).
One might also notice whenever you download a major update of your beloved application (say a 2.0 version of the app) there’s usually is no turning back to the old 1.0 version of that native app. Usually, you can’t have the same app installed side by side.
On the other hand, many large scale Web apps usually can accomodate a “try before you buy” UX. Users are encouraged to try the new UX before fully by-into the new features and user experience. I have yet to see any native app (either on PC or mobile) that does something like: ask the user to try a new version of the app (that’s a separate download and a new binary), and encourage the users to submit feedback before the official roll out of the major update. It’s an extra layer of work for the team but this is something worth experimenting for many larger organizations.