It's still a somewhat hand-waving argument, but it's correct given the approximations made.
A simple argument is to use the exact Schwarzschild solution, of which we only need
$$\mathrm{d} s^2=(1-2m/r) c^2 \mathrm{d} t^2 + \ldots$$
Now a wave is emitted from a source at rest at ##r=r_0##. The time it takes from one maximum of the wave to the next is
$$\frac{2 \pi}{\omega_{\text{em}}} = \mathrm{d} \tau (r_0)=\sqrt{1-2m/r_0} \mathrm{d} t_{\text{em}}.$$
Then it's received by an observer at rest at ##r_0+h##, and there
$$\frac{2 \pi}{\omega_{\text{obs}}}=\mathrm{d} \tau (r_0+h) = \sqrt{1-2m/(r_0+h)} \mathrm{d} t_{\text{obs}}.$$
Now ##\mathrm{d} t_{\text{obs}}=\mathrm{d} t_{\text{em}}##, from which
$$\frac{\omega_{\text{obs}}}{\omega_{\text{em}}}=\sqrt{\frac{1-2m/r_0}{1-2m/(r_0+h)}} \simeq 1-\frac{m h}{(r_0-2m)r_0}.$$
Now ##m=G M/c^2=R_{\text{S}}/2## is half the Schwarzschild radius. For ##r_0 \gg R_{\text{S}}##, where the Newtonian limit is valid, we have
$$\frac{\omega_{\text{obs}}}{\omega_{\text{em}}}=1-\frac{m h}{r_0^2}=1-\frac{G M/(c^2 r_0^2)} h =1-\frac{g h}{c^2}.$$