The case may be that FPC may not be able to do certain optimisations when you are using the variable in- and outside the loop. It may also be a case of internal optimisation within modern processor architectures.
I remember a similar issue, a mandelbrot benchmark running factor 2 faster simply when I added a completely unused variable to the programs main body outside the loop. Thought this was bug but learned that the many internal optimisation schemes of modern processors may interfere with each other and cause unpredictable results sometimes.