I don't know why any one program in particular is doing this, but I'm pretty sure that I know "why" it happens. This is the technical reason...
When one writes a mac program, one doesn't write all of the code that handles displaying windows, fetching data from the internet, drawing menus, etc. Instead, one writes the "logic" of the program and lets the operating system (Mac OS X) do the rest. One accomplishes this by using Application Programming Interfaces (APIs - these are the Carbon and Cocoa things you may have heard of).
For example, if one wants to create a new window, one asks the operating system to create a new window with
this title, at
that location on the screen, etc.
Getting back to the original question, Mac OS X is set up so that if you ask the operating system to do something and it doesn't finish within a certain amount of time, you get the spinning cursor. Also, if the operating system wants to tell your program that the user has performed some action like a keypress and your program doesn't respond within a certain amount of time, you get the spinner.
Of course, this doesn't tell you
why certain programs do it all the time - it just says that the program's authors need to spend more time multithreading and Apple needs to spend more time optimizing. Which shouldn't come as a shock to anyone...
Hope the techtalk was helpful