I think the overriding factor is that its all currently closed source, with chunks being supplied by 3rd party developers
A server BMC is really just an low-resource embedded ARM based computer, mounted on the motherboard. Obviously that's something pretty easy for a Linux image to do. In fact I distinctly remember reading about some group working on writing just such an open source BMC firmware, but I can't motivate myself to go try and look it up again.
You can't just replace any BMC firmware with your own image, as they are cryptographically signed like the rest of the server firmware, but if you're working with the OEM, there's no reason you couldn't have an open source BMC image, and maybe work around the need for signing by only allowing updates via a boot-time BIOS prompt, a physical jumper, or similar physical access requirement that wouldn't work as well with (remote) servers.
You can't just replace any BMC firmware with your own image, as they are cryptographically signed like the rest of the server firmware, but if you're working with the OEM, there's no reason you couldn't have an open source BMC image, and maybe work around the need for signing by only allowing updates via a boot-time BIOS prompt, a physical jumper, or similar physical access requirement that wouldn't work as well with (remote) servers.