Flash receives a great deal of hate from the web development community, myself included. Common complaints include load times, performance, unnecessary animations/transitions, forcing users to watch (long) intro movies, inability to bookmark content or specific pages, inaccessibility (especially to mobile users), auto play audio, and that it is bad for SEO. The thing is, most of these same complaints can, and do arise from poor development using HTML, CSS, and Javascript.
I can easily include unnecessary animation and transition effects on my site with Javascript, especially with one of the many Javascript frameworks readily available now. I can load down the site with numerous images and other media, CSS and Javascript files, and bloated markup. I can make a website difficult to use for users, and especially mobile users. I can poorly use AJAX for everything making it difficult or impossible to link directly to anything but the home page.
Flash as a development tool does not require superfluous transition effects and animations (AFAIK). It doesn’t force the developer to include an intro to the site, or to auto play some audio file. There are ways to make sites more accessible in Flash, allowing for bookmarking or directly linking to inner content. The website doesn’t have to take an SEO hit just because it uses Flash. Flash would be less resource intense if there were fewer animations and transitional effects. A secondary, light weight version of the site can be made for mobile users, and others that either don’t have Flash or don’t want to use it.
In my experience, the blame for poor Flash sites often rests in the hands of the developer. It is a poor choice to load up a website with animations. It isn’t user friendly to force users to watch an intro movie that you think is super awesome. The lack of bookmarking, direct linking, and the hit to SEO are all avoidable and to allow for otherwise is laziness. Remember, Flash is just another technology that is often used improperly through no fault of its own.