I made a non-refundable hotel room booking through hotels.com. The hotel has contacted me to inform me that they will not be open for business during my stay because of the Coronavirus. I know I made the booking under the title "non-refundable", but my understanding is that I am not entitled to a refund only if I am the one to cancel the booking. I assume that, given the fact that the cancellation is not being made at my end and instead my order is not being fulfilled, I am entitled to a refund under EU contract law.
Edit: The hotel did not charge me for the booking. My card has been charged by hotels.com. If I cancel the booking through hotels.com's website it says I will not be refunded any money.
Yes, EU contract law normally guarantees that you are entitled to a refund, but there are some EU governments that have taken extraordinary measures in order to reduce the monetary stress on the hotel and culture sector. For example, the Belgian government has taken some measures that allow the travel sector to forego the refunding of package tours and stays, on the condition that they provide a travel voucher for the same value that's valid for at least 1 year. You can find information in https://www.vrt.be/vrtnws/nl/2020/03/18/minister-muylle-maatregelen-reizen-en-evenementen/ (It is Dutch, yes, but Google translate works well enough for a readable translation).
I recommend you check the official site for the health department of the country you are visiting as well as their news sites to verify if there are any active measures in the relevant country that may impact your right to a refund.