It seems “the code has been cracked” by someone at Polygon!
I’ve been attempting to confirm these steps, and so far it seems at least somewhat effective.
Use rare berries
We recommend using at least seven berries to yield a high-ranking curry, but less may work too, depending on your berry rarity.
Fan the flames hard, without burning the curry
The goal here is to get to the biggest size flame, as quickly as possible, without burning it. If you go one level above the right flame size, the curry will burn. You’ll be able to tell you’re doing well because not only will the pot sparkle, but Pokémon will come and celebrate your curry.
Don't spill while stirring
Just go for a nice steady stir, without spilling. You can tell you’re doing good work if you see sparkles above the pot. The spills will also make your controller vibrate pretty hard...
Aim for the light green circle
...aim for the lighter green circle on the inside.
Cook with other players or NPCs
Making curry with other people or NPCs has yielded Charizard-rank more often, simply because it’s easier to do everything we listed above with more people.