Well, in my case, it's nVidia.
And from them (and their proxies), the explanations I have generally heard have been:
1) There are things in the code that they do not have sufficient rights to release in an open manner.
2) There are features of the "graphics hardware" implemented in software as part of the driver, and they believe these features give them a competitive advantage which would be lost by opening up the code.
3) There are workarounds for hardware defects in the code, and releasing them would embarrass the company.
I personally think the first reason is the most plausible one. I could see the second one being a possibility, but unlikely based on what I've observed between driver versions and hardware revisions. The third one I find hard to believe.
So, assuming the first one is the reason, it would cost nVidia a significant amount of energy (and probably money) to work out the licensing to release the drivers as open source. What would the benefit be to them in such an undertaking? Based on the results of AMD providing open specs for their chips, it doesn't seem likely they'd see any performance improvements from community contribution to their driver code.
Meanwhile, they provide me a driver that allows me to earn a living. Despite the roadblocks the kernel developers regularly throw in their way.
I'm sorry, but I guess I'm just driven by pragmatism when it comes to my paycheck. For the libraries we depend on in our software, I (successfully) pushed for solutions that provided the source (either by LGPL, or a source license) because having the source for them was most beneficial.
Meanwhile, there are two video card manufacturers with open source drivers I can think of off of the top of my head (Intel and AMD), and neither of them provide a solution that would allow us to do our work.