Perhaps you mean most hardware manufacturer don't support free OSes, but some do.
Put yourself in the position of a hw manufacturer who wants to support Linux. You have just designed a new device. How are you going to support Linux?
- Obviously you cannot rely on your driver being incorporated in the upstream kernel. One, it may take an unpredictable amount of time, and two most people are not likely to start using the upstream kernel for years. Exactly the same problem applies to driver updates.
- So, you need to develop and maintain an out-of-tree module. For which kernel version and which distribution? In practice you need constant maintenance and testing for many kernel versions at the same time. What is even worse, there is no easy standard way for people to install your out-of-of-tree module.
- There are additional complications. Since you are a good Linux citizen, you have submitted your module upstream, while at the same time continuing to maintain the out of tree module. Eventually some of your customers start using the upstream kernel and you end up in an even worse position. You have to support many versions of the out-of-tree module and versions of the upstream kernel. What is worse, you have no direct control over bugfixes and updates in the upstream driver anymore. If a customers are having problems you cannot just tell them to go complain on LKML.
To be honest, I really understand why most manufacturers don't bother. You need to have a team of full time paid kernel developers for this. Perhaps it makes sense for huge manufacturers (Intel, Nvidia) and for extremely popular products, but not for anything else.