Yep, and the next logical question when both implementations are for the most part bare metal (compiled and low-level), is why is there a large difference? Is it a matter of implementation/algorithm, inefficiency, or a bug somewhere? In this case, that search turned up a hardware issue that should be addressed, which is why it's so useful to examine these things.
The C components initiate the system call and manage the file pointer, which loads the data from the disk into a pyobj string.
Therefore, it isn't so much Python itself that is being tested, but rather python underlying C runtime.