This could be easily explained by the fact that the M1 on battery run at full speed on Linux because Linux doesn't implement the proper power management. When the two are running on AC the difference is only around 15% for my use case (compiling C projects)