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: 
When you talk with client via TCP connection you maintain TCP session. So when new connection established you need separate process(or thread, no matter how it implemented and what OS used) and maintain conversation. But when you use UDP connection you may recieve datagram(and you will be informed about senders ip and port) but in common case you cannot respond on it.
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.