The current Linux kernel supports more devices than any single Windows release. Linux also supports more legacy devices than Windows Vista or Windows 7 and supports numerous architectures not supported at all by Windows.
In the case when there's no support for certain hardware, it's often the manufacturers who are at fault. They don't spend the resources to create the drivers or they make it difficult for the Linux community to make them.