Usually it's the fault of the Linux drivers. They don't correctly configure the various integrated peripherals to draw as little current as possible: the WiFi chip, the Bluetooth chipset, the webcam, or whatever random integrated USB peripheral you find on an average laptop.