Não necessariamente, utilizar um ORM no geral adiciona um "peso" ao projeto, deve se saber muito bem quando esse peso vai trazer mais vantagens do que desvantagens.
Para aplicações "Data Driven" como CRUDs simples, pode ser até que ajude realmente. Mas para aplicações com bases de dados legadas em que as tabelas não necessariamente representem entidades da forma que entendemos a orientação a objetos, adicionar um ORM pode deixar as coisas bem ruins, principalmente se for um ORM que segue o Active Record.
Também não necessariamente, na verdade usar ORMs sem saber exatamente o que está fazendo, força ao jovem programador a programar voltado para o ORM e não para os problemas do negócio. Já presenciei "soluções mirabolantes" pois o problema do negócio não era facilmente resolvido com o uso do ORM. Era como tentar encaixar um quadrado onde caberia um círculo.
Além disso, mapeamentos mal pensados e lazy loads não configurados podem resultar no famoso N+1 queries, esse é um baita problema.
Aplicações pequenas sim (como CRUD), grandes aplicações talvez sejam mais beneficiadas de raw queries, ali dá para criar JOINs, subqueries, window functions de forma muito mais fácil do que tentar fazer o mesmo com ORMs.
É sim possível de ser fazer isso com ORMs, no entanto você tem que lutar um pouco com ele, principalmente para o mapeamento dos resultados em objetos.