All my Linux devices do a lot better under Linux than under Windows; Lenovo X220, MS Surface and GPD Pocket all run both but battery life is miles ahead of Windows for my use (programming and browsing for programming). I use Ubuntu with i3wm. i3wm is, I think, where most of the difference comes from; it is very light. And, imho, much easier to work with than mouse driven stuff.
It is still not on par with Windows (I kept it just in case). I get around 8-9 hours of battery life on Windows while on Linux it is more like 6-7 hours. But it is mostly due to the fact that Chrome/Chromium and Firefox don't support hardware acceleration on Linux and I watch quite a lot of youtube videos. There is a Chromium that uses the video acceleration API (VAAPI) but it comes from the user arch repository, there is now also a snap package (I haven't yet fully tried them).