Due to differences in system call mechanisms and operating system mechanics, the size of shellcode on Windows is typically larger than Linux.
A simple exec* shellcode for Linux can be small, between 20-100 bytes.
The same thing on Windows can be 200-500 bytes.