Nie, to nie wina spoja. Spoj kompiluje oba kody źródłowe do plików wykonywalnych i odpala je poleceniem z konsoli. Następnie liczy czas po którym otrzymał wynik. To dlaczego program w Javie działa wolniej zależy od szeregu czynników o których można znaleźć szereg informacji w internecie.
Głównym problemem Javy jest to, że C++ jest językiem który jest kompilowany pod konkretną platformę, podczas gdy Java jest obsługiwana przez maszynę wirtualną (JVM) która sama potrzebuje nieco pamięci i zasobów.
Jak dodamy do tego wolniejszą obsługę wejścia i wyjścia to mamy sporą różnicę w czasie wykonywania.