Question: Why is the design of TCP servers mostly such that whenever it accepts a connection, a new process is invoked to handle it . But, why in the case of UDP servers, mostly there is only a single process that handles all client requests ?

Answer: 
The main difference between TCP and UDP is, as stated before, that UDP is connectionless.

A program using UDP has only one socket where it receives messages. So there's no problem if you just block and wait for a message.

If using TCP you get one socket for every client which connects. Then you can't just block and wait for ONE socket to receive something, because there are other sockets which must be processed at the same time.  

So you got two options, either use nonblocking methods or use threads. Code is usually much simpler when you don't have one while loop which has to handle every client, so threading is often prefered. You can also save some CPU time if using blocking methods.
Programs that can continue to do useful work while they are waiting for I/O 
will often be multithreaded. Programs that do lots of computation which 
can be neatly divided into separate sections can benefit from 
multithreading, if there are multiple processors. Programs that service 
lots of network requests can sometimes benefit by having a pool of 
available threads to service requests. GUI programs that also need to 
perform computation can benefit from multithreading, because it allows the 
main thread to continue to service GUI events. 

Thats why we use TCP as an internet protocol.