The incentive for Sun probably was in part that they wanted their high end workstations to stay relevant and maybe eventually develop cpu's that accelerated java execution.
The concept of run anywhere, from a code execution standpoint, is fine. That doesn't preclude using platform specific APIs to make the application better. Like using C# but targeting iOS's UI toolkits. Or using signals from a Mono application.
While MS may have certainly intended to fragment Java, the core concept of platform specific APIs isn't inherently a bad thing.
Also note that during this time, MS supported Windows on non-Intel architectures so I'm not sure about the x86 comment.
I'm all for it and see Java as doing quite a bit of good (despite the terribleness of the language and brain-damage it's inflicted on developers, which is a great bit of bad). I just don't get how it helped Sun, and I suppose, history shows it did not.
Java also seems nonsensical for Sun. How were they supposed to make money off it? Especially as a hardware company, it seems a bit odd to target all platforms. And in the end, how could Microsoft not buy Sun for a measly $2BN?