Is there a simpler proof of this fact in analysis?
Solution 1:
By your argument there are points $x_1 < x' < x'' < x_2$ where $f(x') > 0$ and $f(x'') < 0$. By the IVT there is at least one point $y_1$ (and possibly more) where $x' < y_1 < x''$ and $f(y_1) = 0$.
If $f'(y_1) \leqslant 0$, then we are done. On the other hand, if $f'(y_1) > 0$, then we have the same problem with $y_1$ replacing $x_2$ and there exists a point $y_2$ between $x_1$ and $y_1$ such that $f(y_2) = 0$.
Continuing in this way we either find a zero where the derivative is less than or equal to $0$ or generate a sequence $y_n \in (x',x'')$ such that $f(y_n) = 0$ and $f'(y_n) > 0$.
However, it can be shown that if there are no zeros of a function that is differentiable on a closed interval where the derivative is also $0$, then the set of zeros is finite. Since $f$ is differentiable on the closed interval $[x_1,x_2]$ there exists only a finite set of zeros $\{y_1,y_2, \ldots, y_n\}$ between $x_1$ and $x_2$.
Armed with this, you can now show that $f'(y_n) \leqslant 0$ since $y_n$ must be the smallest number between $x'$ and $x''$ with $f(y_n) = 0$. If $f'(y_n) > 0$ then there would be another zero between $x'$ and $y_n$, a contradiction.
Addendum
Suppose $f$ is differentiable on $[a,b]$ and at no point $x \in [a,b]$ do we have $f(x) = f'(x) = 0$. Then the set of points in $[a,b]$ where $f(x) = 0$ is finite.
To prove this, assume otherwise. Then there is an infinite sequence of zeros and by compactness and continuity a subsequence $(x_n)$ converging to some point $c \in [a,b]$ such that $f(x_n) = f(c) = 0$. Since $f$ is differentiable
$$f'(c) = \lim_{n \to \infty} \frac{f(x_n) - f(c)}{x_n - c} = 0,$$
a contradiction.