I'm a backend (PHP) developer, but I have converted some (static) HTMLs to dynamic templates (for different people, with different levels of coding knowledge).
It doesn't matter which template engine we use (blade, smarty, twig), we can use "include" and/or "extends".
(what i mean by) include method:
include header
write the content part
include footer
(what i mean by) extends method:
extends layout
write the content part between the correct command ( {block } or @section() )
In some projects "extends" reduces the number of files (ex: instead of header dash-header, footer dash-footer, there are layout and dash-layout).
What crosses my mind and I'm writing about is the KISS principle("Keep it simple, stupid!").
Although the "extends" method is not complicated, people who haven't used it before, tend to get frustrated. And developers would call a template cheap if it is developed with the "include" method.
If we put the argument "it's a personal based opinion" aside, we can say we know the user/employer (person who is going to use/edit the template), and based on that, we can choose a method.
But is there a logical reason (ex: template engine processes, performance, resource consumption) to choose "extends" over "include" ?