I think that this is true, and I hate it.
In a previous job, I had to work with the worst (shop)-framework I have ever seen.
It is very expensive, over-engineered in the worst ways, very slow and awful to use.
The blatant misunderstanding of software architecture principles in that software is hard to put into words.
For example: It took an experienced developer two weeks and more than 2000 LoC in more than 40 files to add a new label to a product.
But the company creating this mess is good at marketing, and their events are great.
A few weeks ago one of the guys (a freelancer) who stayed in that project was on an event of a competitor to this shop framework.
After that event, he said that their software was way better, but it wasn't interesting enough for him to invest in learning that system.
In his opinion, their marketing is not good enough, and they won't be able to sell it to important companies.
So we are stuck with bad products because they apparently sell better than the good ones.
The developers in the company I mentioned first even knew beforehand that the software was bad.
They were "included" in the decision process, and they all voted against the bad software and preferred another solution (it was before my time, and I don't remember if they told me what they actually wanted to use).
But the manager who made the ultimate decision had such a good time with the guys from the bad product that he decided to go with it.
I know a lot of good developers and people who can sell themselves really well.
Sadly, these two groups hardly overlap.