Bad Hardware
One slightly more credible reason for not releasing documentation is that the driver works around broken behavior in the hardware, and the manufacturer doesn’t want to announce to the world how bad its hardware really is.
A good example of this problem is the Realtek 8139 Ethernet controller chip. The OpenBSD driver for this chip begins with a comment containing choice phrases such as "I’m inclined to blame this on crummy design/construction on the part of Realtek...." The FreeBSD driver is even more scathing. The file begins this way:
The Realtek 8139 PCI NIC redefines the meaning of "low end." This is probably the worst PCI Ethernet controller ever made, with the possible exception of the FEAST chip made by SMC.
Has this bad press affected the chip’s popularity? Not in the slightest. Almost everyone I know owns at least one device containing this chip. In spite of the poor design, these chips are very popular among Free Software users due to the low price and the fact that the chips work with the user’s OS of choice (even if the chips don’t work as well as a more expensive version).