I agree with most of those who have said this already, Flashes real advantage is that it consistently works. If I’m running an old version of Flash it will tell me and offer to update. If I am running an old version of Java then the applet will crash making me think that your game doesn’t work (when it’s actually my fault).
You can still make some amazing stuff in Java, there is nothing to stop you building your own amazing high-end 3D engine and you can potentially build nicer stuff then you can in Flash. But applets were never really popular and tbh I think they are on the way out now. There is a huge wave of technologies (old and new) which are making plugins redundant. If you want to play a video with Java you still need to use the terrible JMF where as if you visit youtube today with Chrome you don’t need any plugin at all. If you want to make a proper app you can use GWT to compile Java to Javascript, removing all those runtime issues. For games WebGL is being developed for 3D in the browser; no need to sign any certificates.
Flash has a big enough foothold and enough professional Flash developers to survive this wave (at least for a while). But most of all Adobe are very interested in improving Flash, keeping it alive for people to continue to use it. Sun have improved applets over the last few years, but thos have been minor.
