I was going to write almost exactly this, but somebody else already did, so I borrowed it...
Ambulances are expensive to operate.
You have two medical personnel, usually a "medic (high-level training)" and a "basic (first-level training)" if it is an ALS (advanced life support) unit. You also have oxygen tanks that are (hopefully) frequently replaced, a whole bunch of medical supplies that are one-time use (nasal cannulas, non-rebreathers, gauze, IV kits, ET tubes, splints, emesis bags, etc.), and that's not even counting the drugs, which have to be replaced every time they are used, and replaced every year even when they aren't used. The drugs in the back of an ambulance are basically identical to the drugs you'll find in a level 1 trauma room in an ER, so trust me when I say they aren't cheap.
Also, ambulances don't get the best mileage, as you'd imagine, and most run on diesel, which is now the most expensive gasoline. They are also very expensive to maintain.
The profit margin on an ambulance call is actually not very big, especially if it is an ALS unit. Many ALS calls actually lose money.
The more important reason: Insurance.
At most ambulance companies, Medicare pays for the vast majority of ambulance calls. Medicare flat denies somewhere around 60% of all calls for spurious reasons, and are making new regulations literally every day in how those calls are reported and filed. For each call, the attending (usually the medic) has to fill out a long form (commonly called a PCR) that constitutes a legal document that is sent to Medicare for billing. If even the slightest error is made in the document - something as small as a misspelled word, or a a missed check box - Medicare denies it on face. There is an appeals process for this, but it's so long and tedious that it is almost never worth it to pursue such an appeal.
When Medicare (or any other insurance company) kicks back a claim, it is now the patient's responsibility to pay for the ambulance out of pocket. However, less than 10% of all patients actually pay under those circumstances, even after going through the full collections process. So, only about half of all ambulances calls actually get paid, and as mentioned earlier, they are very expensive to operate.
Hidden third reason
Many municipalities have statutes that determine the rates for ambulance calls, not the companies themselves. You should take it up with city council.
Tl;dr
Ambulance calls are crazy expensive, only half of them ever get paid, and rates are often set by the city, not the company.