http://www.proactiva-calidad.com/java/arquitectura/imagenes/arquitectura_J2EE.JPG
Mira esa imagen.
Los Servlets son objetos que se ejecutan en el Contenedor Web.
Los EJBs se ejecutan en el Contenedor de EJBs.
Están en diferentes capas de la aplicación y cumplen objetivos diferentes.
Los servlets son objetos que reciben y procesan peticiones HTTP, nada más. Forman parte de la capa de presentación y distribuyen y ejecutan las peticiones de los clientes web.
Los EJBs están en la capa de negocio y representan conceptos de negocio de la aplicación. Hay de varios tipos pero en general tienen una relación o bien con los datos (entidades) o bien con los procesos (sesiones) del negocio.