TL;DR; That is because OpenSSL by itself does not try to fetch intermediate certificates, but a lot of software expects it will.
OpenSSL
To my understanding, the reason for that is because many or maybe even most Ubuntu applications rely on OpenSSL to verify certificates. The problem lies in the fact that OpenSSL by itself does not fetch any certificates, it just relies on the local collection of trusted certificates, which contains ("by default") only (or mostly) ROOT CA certificates, or at least it expects the whole chain to be provided by the invoking side.
OpenSSL developers consider that fetching additional certificates is not the responsibility of OpenSSL, and must be done by the application itself. See this issue.
RFC
It is worth noting, that earlier RFC5246, which covered TLS 1.2 and is now obsolete, required that server MUST send the whole chain of certificates (7.4.2):
This is a sequence (chain) of certificates. The sender's certificate MUST come first in the list. Each following certificate MUST directly certify the one preceding it.
But newer RFC8446 relaxes this (4.4.2). In particular, it says this:
For maximum compatibility, all implementations SHOULD be prepared to handle potentially extraneous certificates and arbitrary orderings from any TLS version
So, to my understanding of this RFC and the term "implementation" in particular, OpenSSL SHOULD be capable of handling extraneous certificates, but it is not.