Idea clave $\ $ Compuesto polinomios toma compuesto valores) (excepto para finamente muchos valores)
En efecto, supongamos que $\ f(x)\color{#c00}{\ne 0}\ $ es un polinomio compuesto: $\, f(x) = g(x)h(x)\,$ con $\ g,\,h\color{#c00}{\ne \pm1}.\,$ Entonces $\, f(n) = g(n)h(n)\, $ es un entero compuesto si $\,g(n),\,h(n)\,\neq\, 0,\,\pm1.\,$ Las posibles excepciones son $ $ finito $ $ en número: $ $ cuando $\,n\,$ es una raíz de $\ g,\, h,\, g\pm1,\,$ o $\, h\pm1, \, $ todos los cuales son $\color{#c00}{nonzero}$ polinomios Por lo tanto, tenemos finito conjuntos de raíces. $\ $ QED
Nota: $\ $ Para un polinomio compuesto específico $\,f = gh\,$ esto da lugar a un algoritmo sencillo para enumerar sus valores primos finitos: probar si $\,f(n)\,$ es primo como $\,n\,$ se extiende sobre las raíces de $\,g\pm1\,$ o $\,h\pm1.\,$ Aplicando esto a $\, f = x^3-1 = (x-1)(x^2\!+x+1)\,$ rápidamente da el resultado buscado.
Por lo tanto, el método utilizado en las otras respuestas es un caso especial de un método que funciona en general. Además, se trata de un caso de filosofía general relacionando las factorizaciones de los polinomios con las factorizaciones de sus valores (ver dicha respuesta) para saber más sobre este punto de vista).