The thing about read-based heavies vs. combo-based light characters is that the burden of performance is on the light characters. The heavies don't mind messing up that much by design; they kill early and enjoy Rage, so trades are usually favorable for them. This doesn't mean that heavies are skilless, far from it, but the lower margin of error is built into their design so that they can take some risks and pull ahead. By contrast, light characters have to minimize risky scenarios and trades to win. In other words, they have to lame out the heavies in neutral.
Usually when you see a Charizard winning against a Sheik at high level it's because the Sheik is messing up (not to take anything away from the Charizard). Just look at False vs. Trela at Sky's invitational, or Denti vs. Trela a while back on 3DS. But if we are talking about a well-played (high-level) Charizard vs. a well-played (high-level) Sheik, where the Sheik is making minimal mistakes, then Sheik comes out ahead.
The strat is pretty much "be heavy". Charizard hits so much harder than Pikachu and dies so much later that you can be losing the neutral pretty badly and still win the game. I just kinda jab, grab, and Flamethrower a lot while mixing in fishing expeditions with power moves, and it works out okay. The fact that Charizard out ranges and out prioritizes Pikachu's entire moveset to a ridiculously huge extent helps too; Pikachu is so much faster, but if you can just get your moves out, they'll consistently beat everything Pikachu does. There are times fighting characters like Pikachu and Sheik as heavies that you will take stupid amounts of damage without actually accomplishing anything, but it's okay just stay calm and keep looking for your openings and know you can make it all up in a hurry.
The problem is that Charizard is not even remotely safe in neutral, and Pikachu doesn't have to approach. You can tjolt until Charizard approaches you and then QA to the other end of the stage if he walks forward and powershields (if he runs, he commits to dash attacking, grabbing, or jumping, so you can time a f-air, which will win almost always, trust me). Now, to deal with this strat, Charizard can run behind and grab you if you QA past him, or he can toss out a hitbox. Pikachu can mix up QAs in place and outside of Charizard's dash grab range, and if Charizard misses his aerial or up-smash his attacks have enough lag on them that Pikachu can punish and start a combo. It may sound like it's a 50:50 read for Charizard but it's much worse because of the many angles of QA. I very rarely get hit out of this against heavies, especially because intelligent use of Tjolt coaxes shields. To make matters worse, there are gaps in Charizard's aerial hitboxes that allow Pikachu to f-air or b-air through. Also, d-tilt and f-air are moderately difficult for Charizard to deal with at max range.
The big thing that Pikachu needs to avoid doing is running in to nab a KO, because that's how you get killed (by rock smash, grab, d-smash, anything). Just wait and keep camping; the KO will come to you. Tjolts are much less effective on Battlefield but Quick Attack cancels come into play there, and I'd say the matchup is even better there because of those (Lylat too). Rock Smash prevents lengthy up-air juggles on Charizard anyway, so it's not like the platforms help Charizard land in general.
Generally just get the % lead and then lame Charizard out. It's not free by any means, but it's certainly in Pikachu's favor, unlike the Greninja MU, where it doesn't matter if you lame Greninja out or not because he's fast and hard to punish.