I agree that it is difficult to align incentives for non-profits, but turning them into companies would simply add a profit motive and an obligation to shareholders on top of those difficult-to-align incentives.
The people that non-profits are accountable to (the poor, minorities, etc) are generally powerless vis-à-vis those non-profits, and there is a perpetual risk of corruption arising from that effective lack of accountability. The paying customers of a business are relatively much more powerful vis-à-vis that business. If Gmail upsets you, you switch to Fastmail; if your soup kitchen upsets you, you... what? Don't eat?
This stuff is very, very hard, and something I'm sceptical will ever be solved, least of all here on HN.