Because they feel that can only support what they have actually tested.
Let's say that you upgrade to SQL 2019 and run with compat level 140. Now you run into an issue with the application which all of sudden claims that 2+2=5. The vendor is not able to repro this when they test on SQL 2017. And since your database is on SQL 2019, they cannot restore it on SQL 2017. The vendor will simply tell you that Microsoft broke something. And maybe Microsoft did. It has happened.
To verify what actually happened can take quite a bit of time for the vendor or so they think. Which they may not really be able to bill you for. So they say up front: this is not supported.
I can't really disagree with this policy. But it is remarkable that they don't support SQL 2019, given that it has been out for soon two years.