With Bitcoin it is almost impossible to figure out who an account belongs to. It's however easy to follow the money as every transaction is public.
So while you can see what the charity does with the money, and also confirm that they received it, it's almost impossible for the charity to figure out who sent the donation.
An account in Bitcoin is just a long random number. And you can create as many accounts as you like. In order to find out who the account belongs to you have to trace back the money to an exchange, and not only hope they will cooperate, but also that they have not deleted the records of the transfer.