The majority of hotels around the world, charge in local currency.
Hotel chain websites allow you to show the price in your currency - but the actual booking is done in local currency (e.g. if I book a hotel in Europe, I will often see the price in GBP, but the rate is in EUR). I'm sure that there's something in the website T's&C's to say that the conversion rate on the website is based on xxx and the actual rate is in the local currency.
The ripoff is usually on the credit card charges - hence someone's comment on using Revolut.
The big question here being is if in the booking confirmation email it states the price in USD or local currency? If it states it in USD, then you should be able to pay in USD. If it is saying local currency, then sorry, but you need to pay in local currency.
T