「最近接丸め(偶数)」というルールで端数処理が行われているからでしょう。
最近接丸め(偶数)(Wikipedia IEEE 754 より)
最も近くの表現できる値へ丸める。表現可能な2つの値の中間の値であったら、一番低い仮数ビット(桁)が0になるほうを採用する。これは二進での標準動作かつ十進でも推奨となっている。
とりあえず、出力に現れる数(floatで表現可能な数)を二進数で表してみましょう。
9007199254740992 = 1.0000000000000000000000000000000000000000000000000000 x 2^53
9007199254740994 = 1.0000000000000000000000000000000000000000000000000001 x 2^53
9007199254740996 = 1.0000000000000000000000000000000000000000000000000010 x 2^53
9007199254740998 = 1.0000000000000000000000000000000000000000000000000011 x 2^53
9007199254741000 = 1.0000000000000000000000000000000000000000000000000100 x 2^53
そして、連続する3つの値9007199254740995、9007199254740996、9007199254740997を丸めるとどうなるか考えてみましょう。
まず9007199254740995ですが、9007199254740994と9007199254740996の中間の値なので、一番低い仮数ビットが0になる9007199254740996が採用されます。
次に9007199254740996ですが、これはこのまま9007199254740996となります。
最後に9007199254740997ですが、9007199254740996と9007199254740998の中間の値なので、一番低い仮数ビットが0になる9007199254740996が採用されます。
上記より、連続する3つの値を丸めると、9007199254740996が3回現れることが分かります。