Cygwin, together with emulating a unix command line, a shell for that matter, is not a 100% equivalent of any UNIX shell. Hence, different functionality of some applications from their UNIX counterparts and some totally not working UNIX commands, should be expected. It was never intended to be a UNIX training platform as far as I know.
If you are serious about learning unix, assuming you have a semi-decent and recently built machine with ample memory, also assuming you don't want to give up your windows comfort by booting into a secondary linux partition, I'd suggest using Oracle's virtual box to create a virtual partition under windows and run a real unix operating system on it, not like a unix shell emulator. You will find all your commands there and their expected behavior will be the same as you are running it on a physical machine, except the commands that probe hardware of course.
If you are confused, just google the term "VirtualBox for beginners". You will find a myriad of reading material.