This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
As to why it's preferred, consider how you'd unit test an action. If you need to inject your own request, perhaps a mock request, into the action, it's obviously going to be substantially easier if you could just set the request on the action via a setter. Using the static method means you have to create the entire Struts 2 request processing stack--not fun.
That said, tying your action to the servlet spec is almost never required, and even more rare, a good idea.
I cannot stress enough how much easier, and faster, your learning curve would be if you'd just read the documentation.