When you call getDrawGraphics() you are getting the graphics context that will be drawn into.
When you set up a BufferStrategy with for example 2 buffers, you have two possible locations to draw into. The BufferStrategy handles all the blitting or flipping and each time it flips, a different context is used to draw into.
So you need to get the Graphics2D object that contains the current context to draw into.
At least that is my assumption. I've never seen an official reason for getting a new g each time, but I've never seen the question before either
