The JVM should be acceptable for client apps, but its implementation footprint is bulky in most respects(download, memory consumption and startup times) and it has never attained the kind of first-class browser integration and bundling that Flash has.
OTOH Flash performance is quite good now, and I wouldn't dismiss it out of hand. The bottleneck for most apps is in software rendering, not code performance.