C++ - std::endlと\nの実行速度の違い|teratail
https://teratail.com/questions/357334

実際には端末表示にかかる時間なので、測定時間表示部分をstd::cerr出力に変えておいて、Windowsなら
プログラム.exe 1>nul
Unix系なら
プログラム 1>/dev/null
で実行してあげれば現象の不自然さは明確に解消できる。

実装上は
https://github.com/miscco/STL/blob/3c59e25c5663abc7499f96d7e0b4639c8223f6c4/stl/inc/ostream#L744

https://github.com/miscco/STL/blob/3c59e25c5663abc7499f96d7e0b4639c8223f6c4/stl/inc/ostream#L988
の違いで、putsの実装を見るとflush頻度の差だと分かる。