This is like the DIV vs TABLES argument. It really doesn't matter. Use what's best for your target audience and application. If you're writing a game, use flash. If you're making a traditional website, use html+javascript. For everything else in between, some key decision points off the top of my head:
(1) do you care about mobile browsers? if not, flex works on 99% of desktop browsers, and looks almost exactly the same on all platforms with no additional code.
(2) do you need real, bidirectional, binary-friendly sockets or is long-polling with json/xml parsing sufficient?
(3) do you need to make extensive use of tables, images with flowing text, and other complex forms text layout that are trivial to do in html but difficult to do in flex?
(4) do you plan on creating a lot of sound / video / vector animations that need to perform reliably and consistently across browsers and platforms?
(5) does your application need to do a lot of client-side processing?
(6) can you combine the two approaches? example: gmail uses flash just to play the "ding" sound in chat or to show the file upload progress bar; video sites mostly use flash only for the video element and do the rest of the layout in html/js; etc.
Here's an interesting one: compare the rendering speed of maps.yahoo.com (flex) versus maps.google.com (javascript). And the fact that on the smartest mobile devices -- iphone, G1, blackberry -- they all have native versions of the maps app, because the javascript on maps.google.com is so intensive that it's an incredibly poor experience in any mobile browser.
Full disclosure: I work on voxli.com, where the UI of the chat room is 100% flash, but the rest of the website (registration, login, intro, etc) are in html/javascript.