The limited housekeeping is a major factor in the supply shortages, as well.
With daily housekeeping, there's usually a few days' worth of towels, sheets, etc. in circulation.
1 set in the room
1 set dirty being washed
1 set clean on the shelf in the supply room ready to be put out the next day
With on-demand housekeeping, the they stock 2-3 days' worth in the room, which means the hotel has to purchase more, or other rooms go without. Then, on busy check-out days (Sundays at resorts, etc.), all of that used linen has to get washed and turned around by a team that is already short-staffed. You can make the argument that putting 2-3 days' worth of linens in the room, and then changing them out every 3rd day doesn't require any additional resources, but keeping the goods circulating is important for consistent inventory levels.