We tend to keep devices for a long time, and we enjoy that they work like new for a very long time. I tested an iPhone 7's battery life on iOS 10. Exact same battery life as my iPhone 6s on iOS 9. 7-9 hours on-screen depending on usage. The iPhone 7 was updated to iOS 11: Battery life was 5-6 hours. The iPhone 7 was updated - again - to iOS 12. Battery life: 4 hours. After three years, my iPhone 6s is still on iOS 9. Battery life? 7-9 hours on-screen.
You are right in the fact that performance hasn't been crippled with the 6s onwards, and you are right that app compatibility is better, but we have all the apps we need. Updating to iOS 12 wouldn't bring anything significant to the table (I'm using an Xʀ on iOS 12.3.1 - it will stay there - and it doesn't have any must-cripple-battery life-by-50% feature). I got burned by iOS 5 on an iPod Touch 4g; I got burned by an iPad 4 on iOS 7, and I have seen disastrous results with way too many devices. I'm not updating anything ever again. I am typing this on a 9.7 iPad Pro on... iOS 9.3.4. I'll tolerate the lack of app compatibility, and I will tolerate not having the latest features. I cannot tolerate lacklustre battery life, or poor performance.
I understand the reasons for which nearly everyone updates. I don't like that some apps I would like aren't compatible, and I like a lot of the new features. I wish Apple would release iOS versions so solid that my argument is burnt to the ground forever. I wish I could update confidently, thinking that everything will be better. I really do. Until that happens, unfortunately, I'll stay behind.