Na página man do Linux seção Notas:
POSIX.1-2001 does not require the inclusion of
<sys/types.h>
, and this header file is not required on Linux. However, some historical (BSD) implementations required this header file, and portable applications are probably wise to include it.
Eu acho que é por isso que a página de manual do Mac inclui sys/types.h
também.