The problem with UWP started with Windows 8.
As consequence of the traditional WinDev vs DevTools relationship, WinRT did not care for a good story.
Worse, it forced devs to write the app three times because the APIs were not the same between phone, tablet and desktop.
Window 8.1, helped a bit with the Universal Apps model. Then the business code could be shared between platforms, but the views (XAML) still needed to be written three times.
Finally UWP was supposed to be back into one single code base for all platforms, but it still lacks polish.
One area is that .NET Native imposes restrictions on .NET code and they are still improving on that area.
Another burning point was that they dropped raw 2D APIs from .NET, forcing anyone that wanted accelerated graphics to go write DirectX code with C++/CX or C++/WRL. Forcing them to make Win2D available.
This is also one of the reasons why Visual Layer was later introduced.
C++ devs also don't know much what to expect.
Initially there was C++/CX and C++/WRL, then Kenny Kerr got hired to work on C++/WinRT, which would support UWP but with standard C++ instead of the extensions used by the former.
C++/WinRT is still WIP after two years, and C++ almost vanished from Microsoft UWP related presentations. The majority of C++ talks are always related to standards support, or OS X/Linux/Android related tooling support.
No word when C++/WinRT will reach feature parity with C++/CX, be supported on Blend or even actually integrated into Visual Studio.
Meanwhile HoloLens and Visual Layer graphical coding presentations are done with C#.
A real pity, because UWP is what I wish .NET would have been since version 1.0 built on COM and AOT compiled to native code, but Microsoft doesn't seem to get it right how to send an uniform message to the developers to build up confidence.