GLUT is only an API that handles windows and inputs (and can also draw some primitive objects), and is mostly used for two things. Demonstration code and learning newbies code OpenGL without messing with platformdependant code to setup windows for rendering and create contexts and so on. The idea behing GLUT is that it should be easy to use, but still it should be powerfull enough to make some serious stuff. The same GLUT code works on litterally all platforms that supports GLUT and OpenGL, and therefore it’s great to code an application to, for example, demonstrate a new nifty technique. And because it’s easy to use, new people can use it to learn OpenGL.
If you intend to run your program on a certain platform only, you can dive into platform dependant code to setup a window and a context. It’s more complicated, but still not too hard, and you have extremely good control on what happens, and what it will look like.
Why NeHe is using Win32 API for Windows tutorials in beyond my knowledge, but since it’s quite easy once learned, I see no reason NOT to use it. If he would have used GLUT instead, I’m pretty sure he would have started using Win32 sooner or later.
I think most professional coders use native Win32 API to code. But still it’s possible to write outstanding games and applications completely using GLUT.