The fact that you can't pull money out of someones bitcoin account will make it incompatible.
It was an independent hotel that I worked in that still took cash from a lot of the customers. About 20%, the average age of the clientele was 60+.
Googling shows that what you say is true in most cases though, especially in the US.
I don't see how having a card on file really prevents someone stealing/trashing the room and simply not having enough money on their card to pay for it though.
I guess the best method for btc is some form of deposit then.
It would not prevent them from stealing your right (at least as much as goes on now lol). I think we can make a Bitcoin ATM/KIOSK that takes the guest cash, QR code or smartphone BTC. This pays for the room tax and covers incidentals like trashing rooms. When the guest checks out their deposit can be given back in BTC if they did not trash or use anything in the room. If the price has changed in that time, you might be able to give them cash from the ATM from their original QR code. There is many ways to implement this system.