No, you're right. I'm the one that's being dense.

It might be because of the overhead though. The library needs to be loaded and initialized before it's used. The built-in function obviously doesn't.

See what happens if you execute both functions multiple times. I'm sure the times will converge more as the overhead of loading the library only happens once.