Tu as 2 gros avantages, je dirais:
1) Tu as un cadre de travail. Ce qui fait qu'une personne qui connait le framework peut t'aider rapidement. Par exemple, avec Express JS, le routage se fait d'une certaine façon. Donc, si quelqu'un veut t'aider (et s'il connait le framework), il pourra t'aider très rapidement. Il sera pas obligé de lire des tones de lignes de code pour comprendre ce que tu as fait.
2) Le framework fait du travail pour toi. Par exemle, toujours avec Express JS, les fonctions utilisées pour le routage sont toutes faites. Pas besoin de taper une centaine de ligne de code pour gérer les routes (alors que le code est trivial).
Un des défauts, selon moi, c'est que tu as moins le controle sur le code. Comme le travail est fait en partie par le framework, tu ne sais pas ce qu'il a fait. Un bon exemple est tout ce qui est ORM. Parfois, tu arrives à des situations où tu comprends pas pourquoi ça plante alors que ton code est bon. C'est simplement parce que ton code utilise celui du framework. Cependant, ce genre de cas est plutôt rare (perso, je préfère des mini framework comme Express JS) ^^