We were on the same cruise as Megabear and we cancelled a meal in the Beach House and Sindhus and it was fine and we received our money back within days no question asked why we had cancelled.
To be fair to P&O we were told that lots of passengers are booking loads of restaurants and just not turning up. Am guessing it is a case of the genuine cruisers have to 'suffer' for those who are just 'playing the game'.
I may be wrong -- but to be fair, we had not issue.
(Cancellations made at least 48 hrs before if not longer)