From http://www.cs.tufts.edu/research/graphics/resources/OpenGL/OpenGL.htm:
The reason OpenGL operates like a state machine is to avoid having to pass many arguments on each function call.
Minimal argument passage
Communication between an application program and OpenGL must eventually pass through the workstation data bus to the graphics hardware. The data bus is typically much slower than the workstation CPU and graphics hardware and so can often be the bottleneck in high speed graphics. To maintain the highest possible speed, OpenGL passes as few arguments as possible in its function calls, as can be seen by reviewing the OpenGL documentation. All calls assume many internal variables have been previously set to the values you want.