Solution:
Answer: {P(x)=xk∣k∈Z+}.
Note that if P(α)=0, then by setting x=α−1 in the given equation, we find 0=P(x3+1)=P(α3−3α2+3α). Because P is nonconstant, it has at least one zero. Because P has finite degree, there exist minimal and maximal roots of P. Writing α3−3α2+3α≥α⟺α(α−1)(α−2)≥0, we see that the largest zero of P cannot exceed 2. Likewise, the smallest zero cannot be negative, so all of the zeroes of P lie in [0,2]. Moreover, if α∈/{0,1,2} is a zero of P, then α′=α3−3α2+3α is another zero of P that lies strictly between α and 1. Because P has only finitely many zeroes, all of its zeroes must lie in {0,1,2}.
Now write P(x)=kxp(x−1)q(x−2)r for nonnegative integers p,q and r having a positive sum. The given equation becomes
k2(x+1)pxq(x−1)r(x2−x+1)p(x2−x)q(x2−x−1)r=P(x+1)P(x2−x+1)=P(x3+1)=k(x3+1)px3q(x3−1)r
For the leading coefficients to agree, we require k=k2. Because the leading coefficient is nonzero, P must be monic. In (∗),r must be zero lest P(x3+1)=0 have complex roots. Then q must be zero as well. For, if q is positive, then P(x2−x+1)=0 has 1 as a root while P(x3+1) does not. Finally, the remaining possibilities are P(x)=xp for p an arbitrary positive integer. It is easily seen that these polynomials are satisfactory.