[proofplan]
Choose a nonzero highest weight vector $v_\lambda \in V$. For each simple root $\alpha$, restrict the representation to the root $\mathfrak{sl}_2$-subalgebra generated by root vectors $e_\alpha$, $f_\alpha$, and the coroot $\alpha^\vee$. The vector $v_\lambda$ is a highest weight vector for this $\mathfrak{sl}_2$-action with highest weight $\lambda(\alpha^\vee)$, and finite-dimensionality forces the corresponding lowering string to terminate. The standard commutator computation in $\mathfrak{sl}_2$ then shows that the terminal string length is exactly $\lambda(\alpha^\vee)$, so this number is a nonnegative integer for every $\alpha \in \Delta$.
[/proofplan]
[step:Choose a highest weight vector and restrict to a simple root subalgebra]
Since $V$ is a highest weight $\mathfrak g$-module of highest weight $\lambda$, choose a nonzero vector $v_\lambda \in V$ such that
\begin{align*}
h v_\lambda = \lambda(h)v_\lambda
\end{align*}
for every $h \in \mathfrak h$, and
\begin{align*}
x v_\lambda = 0
\end{align*}
for every $x \in [\mathfrak b,\mathfrak b]$.
Fix $\alpha \in \Delta$. Choose root vectors $e_\alpha \in \mathfrak g_\alpha$ and $f_\alpha \in \mathfrak g_{-\alpha}$ normalized so that
\begin{align*}
[e_\alpha,f_\alpha]=\alpha^\vee.
\end{align*}
Set
\begin{align*}
e := e_\alpha, \qquad f := f_\alpha, \qquad h_\alpha := \alpha^\vee.
\end{align*}
Then the subspace
\begin{align*}
\mathfrak s_\alpha := \operatorname{span}_{\mathbb C}\{e,h_\alpha,f\}
\end{align*}
is a Lie subalgebra of $\mathfrak g$ with relations
\begin{align*}
[h_\alpha,e] = 2e
\end{align*}
\begin{align*}
[h_\alpha,f] = -2f
\end{align*}
\begin{align*}
[e,f] = h_\alpha.
\end{align*}
Because $\alpha$ is positive relative to $\mathfrak b$, we have $e \in [\mathfrak b,\mathfrak b]$, hence
\begin{align*}
e v_\lambda = 0.
\end{align*}
Also
\begin{align*}
h_\alpha v_\lambda = \lambda(h_\alpha)v_\lambda.
\end{align*}
Thus $v_\lambda$ is a highest weight vector for the $\mathfrak s_\alpha$-module obtained by restriction from $V$, with $\mathfrak{sl}_2$-highest weight $\lambda(h_\alpha)$.
[guided]
The point of fixing a simple root $\alpha$ is that it gives a copy of $\mathfrak{sl}_2(\mathbb C)$ inside $\mathfrak g$. We choose root vectors $e_\alpha \in \mathfrak g_\alpha$ and $f_\alpha \in \mathfrak g_{-\alpha}$ normalized by
\begin{align*}
[e_\alpha,f_\alpha]=\alpha^\vee.
\end{align*}
Define
\begin{align*}
e := e_\alpha, \qquad f := f_\alpha, \qquad h_\alpha := \alpha^\vee.
\end{align*}
The root-space relations give
\begin{align*}
[h_\alpha,e] = 2e
\end{align*}
\begin{align*}
[h_\alpha,f] = -2f
\end{align*}
\begin{align*}
[e,f] = h_\alpha.
\end{align*}
Therefore
\begin{align*}
\mathfrak s_\alpha := \operatorname{span}_{\mathbb C}\{e,h_\alpha,f\}
\end{align*}
is a Lie subalgebra of $\mathfrak g$ isomorphic to $\mathfrak{sl}_2(\mathbb C)$.
Now we check that the original highest weight vector is also a highest weight vector for this smaller [Lie algebra](/page/Lie%20Algebra). Since $V$ has highest weight $\lambda$, there is a nonzero vector $v_\lambda \in V$ satisfying
\begin{align*}
h v_\lambda = \lambda(h)v_\lambda
\end{align*}
for every $h \in \mathfrak h$, and
\begin{align*}
x v_\lambda = 0
\end{align*}
for every $x \in [\mathfrak b,\mathfrak b]$. Because $\alpha$ is a positive simple root relative to the chosen Borel subalgebra, the root vector $e=e_\alpha$ lies in $[\mathfrak b,\mathfrak b]$. Hence
\begin{align*}
e v_\lambda = 0
\end{align*}
Also, since $h_\alpha=\alpha^\vee \in \mathfrak h$, the weight relation gives
\begin{align*}
h_\alpha v_\lambda = \lambda(h_\alpha)v_\lambda
\end{align*}
Thus, after restricting the $\mathfrak g$-action to $\mathfrak s_\alpha$, the vector $v_\lambda$ is killed by the raising operator $e$ and is an eigenvector of $h_\alpha$ with eigenvalue $\lambda(h_\alpha)$. This is exactly the $\mathfrak{sl}_2$ highest weight situation.
[/guided]
[/step]
[step:Use finite-dimensionality to make the lowering string terminate]
For each integer $r \ge 0$, define
\begin{align*}
v_r := f^r v_\lambda \in V.
\end{align*}
We claim that there exists $m \in \mathbb Z_{\ge 0}$ such that $v_m \ne 0$ and $v_{m+1}=0$.
Indeed, using $[h_\alpha,f]=-2f$, induction on $r$ gives
\begin{align*}
h_\alpha v_r = (\lambda(h_\alpha)-2r)v_r
\end{align*}
for every $r \in \mathbb Z_{\ge 0}$. If all $v_r$ were nonzero, then the vectors $v_r$ would be eigenvectors of $h_\alpha$ with pairwise distinct eigenvalues $\lambda(h_\alpha)-2r$, hence linearly independent. This would give infinitely many linearly independent vectors in the finite-dimensional [vector space](/page/Vector%20Space) $V$, a contradiction. Therefore some $v_r$ is zero. Since $v_0=v_\lambda \ne 0$, there is a largest $m \in \mathbb Z_{\ge 0}$ such that $v_m \ne 0$, and then $v_{m+1}=0$.
[/step]
[step:Compute the terminal lowering relation in the root $\mathfrak{sl}_2$]
We prove the commutator identity
\begin{align*}
e f^r v_\lambda = r(\lambda(h_\alpha)-r+1) f^{r-1}v_\lambda
\end{align*}
for every integer $r \ge 1$.
For $r=1$, this is
\begin{align*}
e f v_\lambda = [e,f]v_\lambda + f e v_\lambda = h_\alpha v_\lambda = \lambda(h_\alpha)v_\lambda.
\end{align*}
Assume the identity holds for some $r \ge 1$. Then
\begin{align*}
e f^{r+1}v_\lambda = [e,f]f^r v_\lambda + f e f^r v_\lambda.
\end{align*}
Using $[e,f]=h_\alpha$, the weight computation from the previous step, and the induction hypothesis, this becomes
\begin{align*}
e f^{r+1}v_\lambda = (\lambda(h_\alpha)-2r)f^r v_\lambda + r(\lambda(h_\alpha)-r+1)f^r v_\lambda.
\end{align*}
Combining the coefficients gives
\begin{align*}
e f^{r+1}v_\lambda = (r+1)(\lambda(h_\alpha)-r)f^r v_\lambda.
\end{align*}
Thus the identity holds for all $r \ge 1$.
Apply this with $r=m+1$. Since $v_{m+1}=f^{m+1}v_\lambda=0$, we have
\begin{align*}
0 = e f^{m+1}v_\lambda = (m+1)(\lambda(h_\alpha)-m)f^m v_\lambda.
\end{align*}
The scalar $m+1$ is nonzero in $\mathbb C$, and $f^m v_\lambda=v_m \ne 0$. Hence
\begin{align*}
\lambda(h_\alpha)=m.
\end{align*}
Therefore
\begin{align*}
\lambda(\alpha^\vee)=m \in \mathbb Z_{\ge 0}.
\end{align*}
[/step]
[step:Conclude dominance and integrality for every simple coroot]
The simple root $\alpha \in \Delta$ was arbitrary. The preceding step proves that
\begin{align*}
\lambda(\alpha^\vee)\in \mathbb Z_{\ge 0}
\end{align*}
for every $\alpha \in \Delta$. By the definition
\begin{align*}
P^+ := \{\mu \in \mathfrak h^* : \mu(\alpha^\vee) \in \mathbb Z_{\ge 0}\text{ for every }\alpha \in \Delta\},
\end{align*}
this says exactly that $\lambda \in P^+$. This proves the theorem.
[/step]