In addition to the reasons already discussed, the park pays a fee for the deposit you placed on that reservation. On a $50.00 deposit, it is around $2.00 to $3.00. That includes the percentage paid to the card company (1.5 - 4%), a transaction fee ($.35 to $.65) and a bunch of miscellaneous fees based on the type of reward card you happen to use (up to another 2%). We get to pay some of those fees again when we refund the deposit.
Many third party online reservation systems charge a fee for each reservation, sometimes as much as $2.00 to $5.00. Even if the park doesn't use a third party vendor, there can be hefty "Click Thru" fees if the park utilizes things like Google Keywords and the like. (I pay around $.75 for each click thru on RV reservations and a few dollars for cabin click thrus. Cabins are much more because of the competition from hotels, B&Bs and the like) These fees are not refunded when a reservation is cancelled.
Finally, an employee is paid to handle those transactions. A $10.00 to $20.00 cancellation fee is not much more than a breakeven proposition for a park.