I think the reason is to prevent biasing numbers on average upward or downward.
For example if you have a list of numbers that include a lot of x.5 and you were to round all these upward, the average magnitude of the list would also shift upward. Likewise if you round downward, downward.
By rounding to the nearest even number these would balance out, given enough samples.
SetAttributes[RoundUp, Listable]
RoundUp[a_] := If[FractionalPart[a] >= 1/2, Ceiling[a], Floor[a]]
d = Table[i, {i, 0, 100, 1/10}];
Mean[Round[d]] // N
50.
Mean[RoundUp[d]] // N
50.05
Mean[d]
50