Using a HOSTS file to block things while effective, is also a very bad user experience.
For example, some sites won't let you in until you unblock ads. With an extension you can use the in-browser UI to whitelist that site, with a HOSTS file you'd have to figure out exactly which domains got blocked, then update the HOSTS file, and finally restart the browser & flush the DNS Cache Resolver for it to take effect.
Again, it works, it is just a bad user experience.
This is also the purpose of using DNS management like Umbrella from OpenDNS, which has been serving me very well. It catches most malware sites, and I can add in my own whitelist, blacklists. I did get a bit overzealous and add a cdn once that caused a ruckus, but besides that, one by one blocking ad networks based on which ones generate the most traffic is not only keeping my bandwidth cleaner but makes parsing through dns logs much easier.
http://www.abelhadigital.com/hostsman