The answer to this question is context-dependent. Heat Wave is the worst of the three you listed, but the other two both see use depsite the massive overlap of Pokemon that learn them.
Fire Blast is almost always the best option for Fire-type Pokemon that get dual STAB. This is because it's viable to use a secondary STAB on these Pokemon, which you can choose to be more reliable than Fire Blast. For example, offensive Salazzle always uses Fire Blast because it also has Sludge Wave.
Fire Blast is good for Pokemon that require maximum power to perform their role properly. Fire Blast is the more threatening attack for wallbreakers to use, so it is usually the first preference. For example, wallbreaker Ninetales uses Fire Blast despite not having dual STAB.
Flamethrower is good for Pokemon that don't necessarily need maximum power, but need something to ward off defensive counters. These are usually set-up sweepers or offensive utility Pokemon. Clefable is a very good example of this.
Flamethrower is a source of consistent damage for defensively-orientated Fire-types. However, many of these Pokemon, including Torkoal and Heatran, prefer options with more utility like Lava Plume (which has the best chance to burn).
Heat Wave is used on Pokemon that need a way to hit Steel and don't learn a better move for that. Many Flying-type Pokemon fit this description.