First of all, I think you shouldn't fall for the HTML5 hype and the misbelief, that it can replace all plugins out there. It won't, because it's not intended or able to: http://stackoverflow.com/questions/2643407/should-web-developers-learn-flash/2644910#2644910
Second of all, Flash and Silverlight are not competitors either. Silverlight is a young, powerful, omnipotent platform, whereas Flash is matured, streamlined and highly productive. One of the biggest mistakes was to market Silverlight as Flash's opponent. When it comes to developement time, Flash will excel over Silverlight in the areas it has been designed for, while Silverlight leverages the power of the .NET platform and allows reuse of numerous .NET-libraries, making it fit to tackle enourmous projects.
Third of all, you shouldn't be too keen on the cross-platform thing. The best cross-platform experience you can get is using Java/JavaFX. Flash is horrible on Linux and still quite awful on Mac. As it seems, the same thing applies to Silverlight/Moonlight. Their strength lies in cross-browser compatibility. Except for a few quirks, on a given OS, each will provide an identical experience accross all browser (identically good on Windows, identically quirky on Linux).
I think, the recent increase in interest in Silverlight skills comes from the fact, that decision makers (the majority being the kind of people, who can't tell a server from an aquarium) are starting to believe, it's a cool thing. Market penetration has risen high enough, and the tool is sufficiently old, to be trusted.
I'd never say "Flash is the future", or "Silverlight is the future" or "HTML5 is the future". They all are. You have to decide for yourself, what kind of applications you intend to develop and find the right tools to do that. Better be good at something you like and believe in, than mediocre at something, that's hip right now.
greetz
back2dos