Because Linux is (and will be for the foreseeable future) licensed under GPLv2, which is incompatible with software under v3. There are also some issues on driver architecture that make ZFS and the Linux kernel a tough match.
btrfs is supposed to one-up ZFS anyway, and that's going into mainline as experimental with the imminent release of 2.6.29. I'm not sure how btrfs and ZFS they compare, just know that btrfs is being developed since Linux has been unable to get ZFS.