Despite the additional name-lookup for the math -module functions, those approaches are still faster than the in-built ** operator and pow function.

Why is the math module more efficient?

The math module uses the C implementations of the square root and power functions which explains the better performance. And pow() is really the same as the ** operator but comes with an additional function call overhead.