Frames are still used as underlying microfrontend technology with surprising success. Theory available at https://martinfowler.com/articles/micro-frontends.html#Run-t... and an implementation at https://luigi-project.io.
In fact, I used them too around 2001 or so for my website when I did not enough programming/scripting to add a common layout to all content pages. That's how I originally implemented a two column layout: a narrow frame on the left for navigation links and a wide one on the right for content. I don't do it anymore, of course. I do know how to program now and generate my HTML website using a tiny Common Lisp program that adds common headers and footers to all my web pages.
Seriously though, why can HTML not have a client side include?