Microsoft is not really behind they are just focusing some resources and consumer awareness towards their embedded solutions. Most of these products already exists, but consumers haven't really heard about them because they have traditionally been used by OEMs to drive customized products.
It's only fairly recently that hobbyist are starting to take an interest in embedded devices. In the past it was way too expensive and specialized to play around with such things in your spare time. That is, unless you had spare time to get an Electric Engineering degree and a do lot of soldering just to get something that would power on. Now you can get enough bits to get started for < $50 and the foundation is already there. You just have to add the specialized components and custom code to make it do something useful. A lot of this is probably because the advancements in mobile are leading to cheaper and more feature rich hardware that is also usable in embedded systems.
MS has many different embedded solutions for all different levels of hardware. At the bottom they have the .Net Micro Framework which is for extremely limited hardware (a thermostat, a smart light switch, a sprinkler timer, etc.). In the middle they have things like Windows Automotive, Windows CE, and Windows Handheld. At the top end they have Windows Embedded 8.1 along with embedded versions of SQL Server and Windows Server. Linux is more common on the really low end hardware that drives really simple devices, but at the higher levels the Microsoft solutions are certainly not uncommon. Cash registers, kiosks, digital signs, handheld inventory/package scanners are quite often using some MS embedded OS.
So having said all that, the advantage in using the MS embedded solutions compared to an embedded Linux solution is consistency and development tools. Consistency comes from there being a specific, well documented, and supported version of whichever Microsoft embedded software platform vs. multiple Linux distros with all combinations of software components that use different naming conventions, API structures, and documentation styles. The development tools that MS has are really the best in the world. When you are programming at such a low level on such a limited device, even very "simple things" can be very time consuming to program. Having good development tools, debugging tools, APIs, and frameworks is a big deal.
I have dabbled in some of this stuff myself for an ongoing project . I have programmed for both Arduino (Linux on tiny ARM hardware) and NETduino (.Net Micro Framework on same type of hardware). The developer experience is not even a fair contest. The NETduino/.Net Micro Framework is so much more efficient and powerful to develop in I gave the Arduino stuff away to a coworker. I won't go into all the nerdy details, but here is one example. With MS Visual Studio and the .Net MF platform I can push the code to the device via USB and execute (no big deal so far), but then I can step through the code line by line in Visual Studio, view the output of functions, and see variable values as it executes on the actual device. The code can also be event driven rather than polling every single I/O port constantly. This kind of stuff is pretty normal for high level x86 programming, but at the ultra low end embedded level it is wildly innovative, unique, and powerful.