Фреймворк пытается обеспечить все, что является общим для каждого (или большинства) проектов - рендеринг html, доступ к базе данных и т. Д. - таким образом, что это просто и удобно в использовании.
Вы бы использовали один для ускорения разработки, потому что вы можете пропустить все эти вещи и сосредоточиться на том, что уникально для вашего проекта. В зависимости от того, что вы используете, он также может добавить некоторые функции безопасности, автоматически экранируя данные по пути в базу данных или на экран.
Я использую их в любой ситуации, когда мне не нужно что-то настолько нестандартное, чтобы больше работало, чтобы адаптировать фреймворк к моим потребностям, чем создавать все это с нуля. Это довольно редко.