Like the title, what does $\forall x\in \mathbb{R}, f(x)f(-x) \le 0$ say about $f(x)$, when $f(x)$ is a cubic function? The book says $f(x)$ has to be the odd function, but I can't figure out rigorous proof of this.
I can see that the function $f(x)$ has to meet $(0, 0)$ because it is the only point that satisfies $f(0)^2 \le 0$. But even if there is a $p \ne 0$ that $f(p) = 0$, it doesn't necessarily make $f(-p) = 0$ like the book implies.
You are right that $f(p)=0$ not necessarily implies $f(-p)=0$. A simple example to illustrate this is $$f(x)=x(x-1)^2=x^3-2x^2+x$$with $p=1$.
However, if there are no multiple roots, then $f(p)=0$ really does imply $f(-p)=0$. This is because if $p$ is a simple root, then the value of $f$ changes sign at $p$. So the value of $f$ has to change sign at $-p$, which means that it must pass through $0$ there.
However, again this doesn't mean the function is odd, as illustrated by the example of the comment above by Adam Rubinson: $$ f(x)=x^3-2x^2+2x $$ simply has no more real roots, and thus $f(p)=0\implies f(-p)=0$ is vacuous and won't allow us to conclude that $f$ is odd.
So to conclude that $f$ is odd, we need to assert $f(x)f(-x)\leq0$, but also the existence of a simple root at $p\neq0$.