According to Ars Technica's Peter Bright: "Such a switch means discarding two decades of knowledge and expertise of Windows development—and countless hours spent learning Microsoft's latest-and-greatest technology—and perhaps just as importantly, it means discarding rich, capable frameworks and the powerful, enormously popular Visual Studio development environment, in favor of a far more primitive, rudimentary system with substantially inferior tools."
The shift is partially due to the success of the 'mobile web' (where MS has a very limited footprint) and the advent of IE9. With the arrival of IE9, MS has a new cross-platform framework for development. As it happens, it's a very fast framework--HTML5 is optimized for speed in ways previous platforms weren't.
Microsoft's response to mounting developer questions has been to council everyone to wait for the BUILD conference in September. It's said nothing further about its plans for .NET, Silverlight, or WPF and hasn't offered any reassurance that devs working in these frameworks will have a development path going forward.
It seems logical to assume that Microsoft is taking this route because it wants to be able to develop true cross-platform products that scale from smartphones to large-scale deployments. While this may simplify software ports and app development, it does so by tossing out decades of work that came before.
Bold, sweeping changes almost always have significant unforseen consequences. Microsoft isn't going to sabotage backwards compatibility--we expect backwards compatibility for Windows 8 will at least be on par with Windows 7. Similarly, new apps written using 'old' methods will undoubtedly be the norm for several years in the future.