I've worked with manufacturers who shipped us binary blobs for their hardware. They are often willing to customize the software for you, but they want to own the modifications, which they can use for other customers. A big part of many contracts is a services component where they provide features or advanced functionality, and this lets them mark up their bill substantially. They're existentially scared of their hardware being cloned or their customers building in-house solutions, so they have to stay competitive on that front.
It's also a huge pain in the ass for them to release software as open source. They would need to track all the different forks and modifications in an organized manner (they often do a lot of copy paste and one-off nonsense). They run pretty light staffing on a lot of these components and doing all of that is just another chore for their overworked devs.
Lastly, I've heard they sometimes use other commercial, closed-source software components which they can't easily relicense.
Is this all bullshit? Yes absolutely. I'm not defending them but these are the excuses they give.