I'm a dentist and we charge for missed appointments with private patients. I wish we could with NHS. By far the biggest DNA rate is with non-fee paying NHS patients, I think it would lower our rate massively people don't respect free appointments.
When multiple patients DNA we still have to keep the surgery open, pay receptionist, nurse, other staff, cleaner etc. Rent, bills even if I as the dentist don't get paid and it will cost us money. The practice would shut basically.
You booked an hour of the GPs time, you were allocated that time its not their fault you chose to not use it. You still had the time. If someone DNAs their 45min appointment at say 9am there's no way you can fill it. We'd set up, prep for 9am, it's going to be 9.15 before we decide they aren't coming (lots if people are late), 9.20 we've packed away, we won't fill that remaining time. The only way is if an emergency walks through the door at 9.16 which is very unlikely. So we lose money.
If you missed a flight you still pay for your seat, if you miss a concert you still pay for your ticket. You booked our time, so you pay for it.
The cancellation policy is irrelevant, and I am sure they will have one, the cost is irrelevant. You didn't cancel you DNAed and you knew how much it cos.
Rarely we would waive the fee if it was a patient we knew they had a genuine excuse, for example hospitalization, a bereavement. But OP doesn't have a genuine excuse, she just wasted their time.