Charms has better tracking of changes. If you have multiple users, you can go back and see who recorded the payment, who deleted what, etc. The audit trail is hopefully not necessary, but if there's ever any question about potential financial shenanigans then The data is all there. This is somewhat possible in Google sheets, but really just as an undo function.
Charms already has everything cross-referenced. I can easily look up a student and see what they have checked out (instruments and uniforms), what they've paid or owe, who their contacts are. Using Google forms I could create that page, but would have to write a bunch of formulas crossing over different sheets.
We track not only incoming payments, but also our campus and district bank accounts in Charms. I could do all of that in QuickBooks or Quicken, but that limits me to one computer at a time. With Charms I can log in anywhere, booster treasurer can see what she needs, we can set up several stations at once to take payments. Again, possible in Google sheets but not easy.
It's a really roundabout way, but charms does have a way to track partial payments. With my demographic, I have quite a few students who have to pay $10 a week toward their band fees. Tracking all of that through Google sheets would get very tedious. I wish that charms would have a way to just record the partial payment on one screen, rather than going through the whole miscellaneous ledger system, but it does work.
Charms lets me send an account statement quickly and easily. I wish there was an easy payment receipt I could email, but we send an updated statement with the payment listed and that satisfies parents. I could create a statement page in a Google sheet, but the email function isn't there. If I print a statement from Charms it's confusing as hell. I understand the debit and credit concept, so I see why a negative number means the parent owes money, but most parents see a negative balance and think we owe THEM money. I don't know why those two screens are different. Regardless, the info is all there.
Email is a big one. There are some kludgy solutions to send personalized email through a Google sheet, but it's overly complicated, and requires a Google account that can send mail (my district Google account can't, we use Outlook for email). I could copy/paste a list from a Google sheet into my Outlook, but that leads to problems. If I "to" or "cc" everyone, parents complain about privacy and/or the reply-alls get stupid. If I "bcc" everyone, it gets stuck in their spam. I know that charms emails sometimes go to spam also, but in my experience more emails actually get through with Charms. I could send through our gradebook, but it's a huge pain. It's also really simple to send email to a small group - all clarinets, all 1st period, only seniors, etc. I would rather Charms had a way to send through the district email servers instead of their own.
Charms is far from perfect. We do a lot of things in Google sheets and forms because it's faster and easier. We still pay for Charms for now.