A lot of people still confuses among these three types of apps. This might be of some help.
Native apps will always provide the best experience on the given platform. That is simply because if you build a native app using the SDKs for the platform you are able to optimize for the platform and take advantage of everything the platform has to offer. For apps where the device is the primary factor (i.e. you want the best iPhone experience possible) or milliseconds matter, such as in high-polygon count games like CSR Racing or Galaxy of Fire 2, native development is the only choice. For apps like this you need to take advantage of everything the platform has to offer, from the GPU to the screen pixel depth.