There may be many reasons for one compiler version being slower than the other. It may depend on some parameters like the load on the judge server at the time of the submission, the data structure that is used in the submission etc.
I have an example where its the complete opposite (GCC 4.3.2 is slower than GCC 4.0.0-8). See submission Id 2349591 and 2349588. Both the solutions are ditto copy of each other, but GCC 4.3.2 gives a TLE while GCC 4.0.0-8 gives an AC. On investigation we found that the submission was using a Linked list. Linked lists are slower than a Vectors or Array for every operation. You can refer the below links for reference.
Linked list was not efficient for this problem, the user should have used some other faster data structure. It is very difficult for the problem setter and tester to approximate time limits for every such case as consistency in execution time between compiler versions can not be guaranteed.