Suppose that $f:(0,1)\to\mathbb{R}$ is differentiable, and that $f(x_1)=f(x_2)=0$ and $f’(x_1)>0$ and $f’(x_2)>0$ for some $0 <x_1<x_2<1$. Then there must exist an $x_0\in(x_1,x_2)$ such that $f(x_0)=0$ and $f’(x_0)\leq0$, as follows: Let $A=\{x\in(x_1,x_2):f(x)\geq0\}$, and note that $A$ is nonempty, since the condition $f’(x_1)>0$ guarantees that there exist points that exceed $x_1$ by arbitrarily small amounts, at which $f$ is strictly positive. Also note that $A$ is bounded above, by $x_2$. Therefore, let $x_0=\sup A$. Note that $x_0 > x_1$. Since $f’(x_2)>0$, there exist points that $x_2$ exceeds by arbitrarily small positive amounts, at which $f$ is strictly negative. It follows that $x_1 < x_0 < x_2$. By continuity of $f$, we have that $f(x_0)=0$. Since $f(x)<0$ for all $x\in(x_0,x_2)$, it follows also that $f’(x_0)\leq0$, as required.
Is this proof correct, and is there a simpler proof, perhaps using a ready-made theorem such as the Intermediate Value Theorem ?
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.