I suspect one of the reason behind that is that the supplier is asked to provide a part that cost only a few thousands bucks, but could potentially blow a multi-million rocket. So, each part end up having a sort of implied insurance and over-the-top quality control, to avoid liability. When SpaceX build something itself, it can evaluate the proper risk of each part and doesn't need to add unnecessary markup.