O padrão curinga *.java é expandido pelo seu shell antes de ser passado para o comando find . Se você tiver um único arquivo foo.java no diretório atual, o shell executará o comando find . -name foo.java . Se você tiver dois arquivos bar.java e foo.java , o comando find . -name bar.java foo.java será executado e find reclamará de um erro de sintaxe. Se não houver nenhum arquivo correspondente no diretório atual, o shell deixará o padrão não expandido, então find . -name *.java é executado como você deseja.
Para dizer ao shell para não expandir o padrão, para que seja sempre passado como é para find , cite:
find . -name '*.java'
find . -name "*.java"
find . -name \*.java