(inexpert opinion)
- Firstly, many of the cheaper batteries overstate their capacity, sometimes drastically so; see if you can find an "actual" mAh figure (eg. a 3000mAh may have an "actual" capacity of 2400mAh)
- All things being equal, higher mAh should equal longer runtimes. Unfortunately all things aren't always equal.
- Not so much voltage but discharge capacity, though they are kinda interrelated.
Some batteries can't deliver more than x amount of current at a time (eg. 2Amps), so they may not be able to supply the driver/emitter with enough current to reach it's highest output. This effects brightness; you may not ever see your flashlight go as bright as it could go if you use an underperforming battery.
The voltages of some batteries sags more than others under a certain load; this in turn may mean the voltage falls below the amount required to keep the driver in regulation, or less than the forward voltage of the LED (assuming LED?) for a desired current. Starts dimming.
To top that off, protected batteries can have different circuits, which may impose artificial restrictions on what the cell is capable of delivering.
Have a look at some discharge graphs made by HKJ (he posted a new one just recently), he's got a comparison webpage where you can compare various batteries he has tested and you can see how some drop off well before others, different curves at different current rates, etc., etc, quite informative/instructive. Also shows that some of the cheapies can be as good as the expensive ones.
Though one other factor could be life; the cheaper ones may well compare in output in tests, but no-one's particularly certain how they will fair in the long-run, whereas the expensive ones may(?) have a more rigorous long-term testing procedure?