I read Sun's argument a while ago, aldo, but I needed the reminder.
Inner classes are very messy. They add a lot more levels of indentation, they take up a lot of vertical space on the screen (unless you compact the braces, in which case it's harder to follow the indentation), and they're not conducive to following the flow of the code if the inner class definition is placed in the middle of the method that uses it.
Not only that, all classes in a program compile to seperate files. Even one-off internal classes. So if your application uses a lot of them you end up with vast numbers of tiny, used-once files in the project /bin directory.
Delegates are so much neater. I know what I want to do; I want syntax and semantics that reflect what I'm trying to do. Object-oriented languages are fine, but Java is obsessively object-oriented.