1) Performance. A Visual Basic 6 app on a 500 MHz system with 256 MB of ram was much more smooth, with less lag and instantaneous response than a modern web app on a 4 core 3 GHz machine with 16GB of RAM.
2) Cost. In the past, once you had purchased the binary it would continue to work basically forever as Microsoft did a great job with keeping Windows backwards compatible. Now, software has become a service that you have to pay for every month. If you don't pay, you can't log in to the web app. In addition, if the web app made changes you didn't like, too bad. If the web app is discontinued, too bad. Also, if you think that the cost is better because you are using "free" web apps, you are paying with your privacy.
3) Lock-in. With native applications your data was on your machine. Even it it was a proprietary format, if you tried hard enough, you could defacto reverse engineer the format since you had access to both the file itself and the machine code. Now, your data is not stored on your machine and the web app controls access to your data.
4) Privacy. With a native app, you could do all your computation and data manipulation on your machine, even disconnecting it completely from the network to make sure your sensitive information did not go where you did not want it. With a web app, you are of necessity sending your data to someone else to process, and you have only their word that they won't do anything bad with it.
5) Software Freedom. Web Apps basically did an end around on the GPL and LGPL. With native apps, if they used GPL or LGPL libraries they would have to inform you and you either had the whole source code (GPL) or the option of modifying the library and using it with the application (LGPL). With web apps, they don't even have to tell you if the backend is using GPL software and you have absolutely no way of inspecting or modifying that GPL software that you would have had with a native app.