Pikachu lacks consistency. Just like Ash, he has a very ceiling, and when he plays up to his potential, he has quality performances like against Metagross and Latios; when he doesn't, he loses. Also, evolution naturally makes a Pokemon on average stronger and its strength more stable. Pikachu is very good, but since he's unevolved, he suffers from his inherent weakness at times. If Pikachu evolved into Raichu, I would say that he wouldn't ever have those random losses.
All in all, Pikachu battling at his potential is equal to or better than Charizard. However, since Pikachu is usually never in that state the majority of his battles, Charizard is better.