Because in Lightning every payment is a smart contract that locks Bitcoin to someone that can present a secret that hashes to some specific value.
If written in english the contract would be kinda like this:
"Pays X bitcoin to anyone that can present a secret that hashes to Y".
Therefore, when you are requesting a payment, you need to inform the payee what is the hash Y. This information changes to every payment and its sent in the invoice. That's why Lightning can't use a static address.
There are ways around this issue, such as LNURL and BOLT12. Under the hood, there's still invoices being communicated between nodes, but you don't see it.