There is HTML::Template::Compiled which, while being compatible to HTML::Template, has a dynamic include feature, which does exactly what you expected above from HTML::Template at this point.
Referring to your code above:
my $filename = "./page.inc"; # or determine dynamically
$layout->param( page => $filename );
<title><!-- tmpl_var name='title' --></title>
<!-- tmpl_include_var name='page' -->
and title will also be expanded in the page.inc part.