The in-game timer tracks times by centiseconds rather than milliseconds. Therefore, the times should have the first decimal place in the tenths and the second decimal place in the hundredths, rather than the first decimal place in the hundredths and the second decimal place in the thousandths. Basically, I'm saying that every time should have a 0 in the thousandths place, rather than a 0 in the tenths place.
The in-game timer doesn't use centiseconds or milliseconds, it uses 1/60ths of a second. It can also sometimes display times ending in :60, which should be impossible in a time based on 1/60ths of a second. Because it would be more confusing to try and convert all the times into millisecond equivalents, the leaderboard instead uses times that are directly transcribed from the game, putting the "frames" part of the time in the milliseconds box on speedrun.com. Doing as you propose would be an improper conversion and would make it more difficult to know what the time of the run is from looking at the time on the leaderboard.