You are under no "legal" obligation to offer a refund and yes, they could have insured the trip, but...
I would suggest giving a credit to the guest to travel at a later date (or some hybrid 50% now, 50% credit for a later date, whatever makes sense to you). At the very least you should refund the cleaning fee since you do not have to clean.
You would gain a customer (call them guest, but they are customers) vs. loosing one. You need to think of this as a business and it is easier to retain a cutomer than to try to aquire a new one.
It's simple on AirBnB, just tell the customer that next time they book to make the request and you then give them a special offer.
I have been doing this for over 10 years and have 50% or better repeat customers each year, you can be right all the time from a "policy" standpoing, but wrong in the end from a business point of view.