The header element is a semantic element that accepts text content just like heading elements (h1–h6 element) do. It is not just a container element for other elements.
The header element usually has a heading element inside it, as the header element does not “introduce a new section in the outline”. But it is not required.
Usage notes
The <header>
element is not sectioning content and therefore does not introduce a new section in the outline. That said, a <header>
element is intended to usually contain the surrounding section’s heading (an h1–h6 element), but this is not required.
Specs
https://www.w3.org/TR/html52/sections.html#the-header-element
https://html.spec.whatwg.org/multipage/sections.html#the-header-element
It would have been possible for the project requirement to ask for a heading element inside the header element, but there is nothing wrong with not having it. Each header element inside a section element will belong to that section. So it seems fairly reasonable to just have the header element without also requiring a heading element.
I can’t really answer why the project requirement was chosen to be done this way, only that it seems reasonable enough.