From a purely implementation standpoint, defaulting to opt-in instead opt-out leads to a long and arduous user migration process. Especially if it's a major change and/or somewhat controversial. Furthermore it tends to fragment the userbase and accumulation of tech debt (e.g. feature disparity). I think this is a huge factor in iOS versioning having such good consistency across its install base.