GPs are self-employed. They enter into a contract with the NHS to provide certain services in return for a regulated scale of payments. Everything else they charge for.
So, for example, if you reach the age of 60 the NHS will pay your GP to give you a free health check. The NHS will then pay for a similar check-up every two years. But if you simply want a check-up at any other time (either before you're 60 or additionally to the free health checks thereafter), perhaps to convince a prospective employer that you're fit to work, your GP will charge you (usually heavily) for it because it's not something that the NHS pays them to do.
£10 for a basic 'fit note' is exceptionally cheap. Many GPs would insist on giving you a full health check (at between £80 and £200).
Providing a service costs money and people are entitled to charge for such services. For example, I used to run a railway station. People would often come into my office and say "I left my laptop on a train half an hour ago. Have you got it?". I'd then reply "Yes. It's here. That's £50, please" They were never pleased but I knew that the law allows a charge of up to 10% of value for retrieving lost property and my employers obliged me to collect it!
So I'm with the GP on this one. Sorry!