Allied to the 'profit' reason is that there is nobody strong enough to force a low-enough price for services.
Countries with single-payer health schemes usually have the government being both the payer and the designator of service-providers. If your price is too high, then you have several options:
Drop your price to be in line with the single-payer's payment level.
Lose your designation as a recognized service-provider if you're not going to drop your price. In effect, that takes you out of the common level and into the 'specialized' level of services because you can't compete with other service-providers on price.
That profit for the hospitals and providers is often driven by waste. 20-30% of all procedures are not needed are done for the benefit of the facilities and provider. They do this because their contracts with the insurance carriers encourages this behavior as they are reimbursed on a fee for service schedule.