Honestly, the main difference is that a web app is immediately portable across most platforms, including PC/Macs, Android, and iOS. Also, we don't have to worry about things like having to pay fees for developer licenses, app store distribution, etc.
The main downside is that programming in JavaScript/HTML 5 is a lot more low-level. There aren't any robust frameworks nearly as advanced as native app development frameworks and tools. So what you save in not having to develop on multiple platforms, you have to give back some for not having native libraries available for many features.
Also, it is very difficult to make a web app have a native app "look and feel," so it's usually not as intuitive or easy to use a web app for someone who is really familiar with a platform or device. In other words, a web app on a iOS device is going to work slightly differently than a native app, and if the developer isn't careful, those slight differences can turn into major annoyances for the end users.