But they did the job well enough for most people most of the time. A massive increase in efficiency can be introduced by replacing the filament bulb with an LED or LEDs. But an energy source is still needed.
A battery will do the job with LEDs and will last much longer - but they still have to be bought and disposed of. One solution is to include a way of generating and storing electrical energy in the torch.
As you may have learned, moving a magnet through a coil of wire generates a voltage. This can be used to recharge a battery. LEDs are so efficient at producing light that the required energy is very small. So the battery required does not have to be very large.
To be so effective, a very powerful magnet is needed to transfer lots of energy from each 'shake'. Neodymium magnets fulfil this role perfectly. The only slight downside of this is that the magnetic field does extend beyond the body of the torch, which could affect credit cards and other magnetic devices if put too close.
When a really bright beam is not needed, the torch can switch to a low-power mode, with only one LED operating. Alternatively, all three can be on, providing a very bright beam for most purposes.
This torch wins the GCSE.com How Science Works efficiency award and is highly recommended.