* iMessage, which does use true E2E encryption in transit.
* iCloud backup, which backs up the contents of your device (including your unencrypted at-rest iMessage data), and does NOT support E2E encryption.
Technically if you (and all your friends) use iMessage and don’t use iCloud backup, then it is impossible for Apple to read your messages.
In reality, the alternatives to iCloud backup are too risky and/or cumbersome, so most people use it, with the result that Apple can read your iMessages once they’ve been sent/received and your phone has performed a backup.
They are providing E2EE with iMessage. E2EE only provides security for data in transit. It ensures that only the endpoints can decrypt the communication. That is it. There's absolutely no promises of encryption at rest on those endpoints.
Not only is Apple actually doing E2EE but the tech press (and apparently HN posters) seem to think E2EE means something that it does not.
When you sign into Messages on a device it generates a key pair and sends the public key to Apple. When you first send someone a message your device gets their list of device public keys. Messages are encrypted with session keys that are encrypted with the public keys. Each recipient device gets a copy of the message and uses its device private key to decrypt the message. The sender and receiver will receive copies on all their signed in devices.
The encryption "hole" with Messages is when the local device database is backed up to iCloud. This is the same hole that exists for any messenger app that has its local database backed up to iCloud. iCloud backups are encrypted at rest on Apple's servers but with keys they can access.