My father runs a few guest suites and he explained to me why the cleaning fee is really helpful in terms of keeping a room's price reasonable per night but him not getting a bad deal for a single night guest.
The more often you wash linen then the faster it wears out and needs to be replaced.
While he has a cleaner who daily makes the bed and does basic cleaning (labour is far more affordable in South Africa), on checkout rooms need a more proper clean with additional use of a cleaning detergents.
Without a cleaning fee which is charged per stay, you'd have to increase the per night fee to cater for single night guests.
With the cleaning fee he can still keep per night rates as low as possible with single night guests still covering their actual overheads.