My policy has been to provide a refund to a guest only if I get rebooked, then only to refund the amount of the new booking less any Airbnb charges so I come out even. I really don't care to make extra money on guests, but want to be nice too. As hosts we can't afford to lose money. Almost all of my guests have been understanding and accept this policy. Some even got their money back.
In May I had one guest cancel, another guest booked the same days so the first guest got a refund. Then the second guest cancelled and a third person booked the same time so the second guest got her money back too. I came out even. A win for everyone.