New features include satellite support, loudness control, 16 KiB pages, upstreamed support for features like locking/hiding apps, OpenJDK 17, app archiving/unarchiving, making Health Connect actually usable on a system level, native storage for end-to-end encryption keys in the contact system, and finally being able to select the vibration pattern for notifications. A lot of small changes for the end user, some pretty large changes under the hood.
I remember going from Android 4.0 to Android 4.3 and seeing nothing change. Moving from Android 5 to Android 6 was also pretty minor. Even back when I updated Android 2.2 to 2.3 there was very little that actually changed on the OS level.
I do remember major changes, like everyone hating Android 4’s interface, and then everyone hating Android 5’s interface, and then everyone hating Android 7’s interface, and then everyone hating Material You, and then everyone hating gesture controls.
Generally, the “nothing happens” updates seem to go down the best. I’m fine sticking with the Material You redesign for a few updates, change for change’s sake is just programmer busywork.