A temporary servlet is started when a request arrives and shut down after the response is generated. A permanent servlet is loaded when the server is started and lives until the server is shut down. Being temporary or permanent is part of the server configuration.
You would likely only use a temporary Servlet in a place where you know the Servlet is going to be infrequently used. You are therefore willing to sacrifice response time (since the servlet must start up with each request) in exchange for resource conservation.
Part way down the page of Sun's Tutorials & Code Camps: The Java Servlet API you will see a section entitled Temporary versus Permanent Servlets which gives some additional explanation.