I think that at many educational institutions, tuition for graduate school classes for master's degrees is fixed, so somebody earning a more competitive, and skills based degree, like one in computer science or something, pays as much as somebody earning an MPH.
Probably most public health schools know this isn't fair, and in order just to get enough students meeting whatever standards, they offer merit-based scholarship to maybe half of students at some schools.
Other students are practicing professionals like physicians or nurses who can afford an MPH to either advance their career, or possibly improve their practice.
Probably though there are people who pay full price for an MPH, then look for slightly higher paying jobs in order to pay off the loans over decades. If you plan to get a PhD or DrPH, those people probably look at Harvard or JHU as a risky, but probably good career investment.
Some people with MPHs, probably more than for other masters degrees, get another master's degree, such as in business, or transition into a professional field like nursing or even veterinary medicine.
Choosing a reputable school like JHU, with a high tuition, is in many ways easier to understand than choosing an even more expensive school with mediocre reputation!
Schools could do things to improve the public health field, such as lowering enrollment slightly, decreasing tuition across the board, and improving the education, but as of right now these programs are big time money makers for the schools.
Given that public health careers usually do not pay as well as other professions like engineering, accounting, law, etc, and assuming that your employer is not paying for it, how did you end up choosing an expensive school, especially if it's a very reputable school like Harvard, JHU, or Columbia?
It's hard to deny the opportunity to have, for example, a Harvard brand name on your resume if you do get in, but is it really worth the exorbitant debt? What do you value in the brand name that you would allow yourself to pay so much more for?