Microsoft has bungled the sales and marketing of Windows Phone from day one. They dropped support for all Windows Phone 7 handsets, after saying they wouldn't and that included devices that were only a few months old. Updates for the OS were slow and lacking in features and marketing support was functionally non-existent. Microsoft seems to think that people will buy it's phones based on name recognition alone and that's just not going to happen. Right now Windows Phone is in the state it needed to be at at launch, more than 4 years ago. Not only that they keep changing the SDK you need to develop to. Windows Phone 7, 8 and now 10 have different tooling and APIs. Sure, some of the code ported over easy, but only if you were lucky. The result is that what is a fairly new OS overall has to ship with 3 sets of APIs to support all existing apps.
The interface design behind Windows Phone was a great idea, that they've been slowly making worse with each version. Everyone else Microsoft has bungled badly. You hear a lot about "App Support", as if more apps is all that would be needed to make Windows Phone competitive. that's silly, Apps come if you sell enough phones, not before (and constantly changing your platform so that apps need to be constantly rewritten doesn't help). Take it from a previous Windows Phone (and current iOS and Android) developer, apps will only show up if we think they'll sell. I don't develop for Windows Phone (or BlackBerry) anymore because it's not worth my time. You need a compelling product to make those sales and people need to want that product. Microsoft doesn't know how to market hardware and it almost doesn't matter how good their hardware is, they can't seem to move it.