As you know well, servlet is loaded at first request. That means it consumes more time at first request. If you specify the load-on-startup in web.xml, servlet will be loaded at project deployment time or server start. So, it will take less time for responding to first request.
So if you have any servlet which takes lot of time during initialization ie. connecting to database,  reading files etc. Better to specify load on startup for these kinds of servlet, so that they can be initialized during application startup. Thus making first request to be faster. 
The load-on-startup element indicates that this servlet should be
  loaded (instantiated and have its init() called) on the startup of the
  web application. The optional contents of these element must be an
  integer indicating the order in which the servlet should be loaded. If
  the value is a negative integer, or the element is not present, the
  container is free to load the servlet whenever it chooses. If the
  value is a positive 128 integer or 0, the container must load and
  initialize the servlet as the application is deployed. The container
  must guarantee that servlets marked with lower integers are loaded
  before servlets marked with higher integers. The container may choose
  the order of loading of servlets with the same load-on-start-up value.