> Security complaints are a weak argument
Performance, performance, performance. Battery life matters. Smooth animations matter.
People seem awfully sure Apple's anti-Flash move was 100% motivated by platform-building and 0% by perf. I'm not so sure it was 100%/0%, because I actually saw how shockingly bad Flash perf was, and I saw how big Apple's perf push was at the time.
One time (2010-ish?) I accidentally left SpinControl.app open after a dev session for ~1 week. SpinControl was an app that would automatically dump a stack trace whenever any application failed to drain its event queue for more than a few seconds and beachballed. Super handy. In any case, when I came back to development and noticed SpinControl, I was surprised to find that 100% of the hundreds of stack traces collected after my development session involved flash. Not 99%, not N-1, literally 100%. WebKit was finding its way into different applications so the symptoms weren't limited to Safari, but I still suspected that I had a filter enabled or something. Surely Flash couldn't have accounted for 100% of my beachballs? I triggered a Mail.app reindex, and sure enough, a stack trace popped up in SpinControl, this time in sqlite, as expected. It wasn't an instrumentation problem. Flash had literally been 100% responsible for all of my beachballs over the past week. Crazy.
This was around the time that Apple started to push developers away from APIs that made it impossible for Apple to aggregate background thread wakeup events to save battery life. In other words: they were willing to sacrifice goodwill to obtain perf.
I'll grant you that platform considerations likely played a big role in Apple's decision, but also remember that Flash was literally the single largest performance-limiting factor when it came to desktop freezes and battery life at the time, and that probably played a role too.