I thought to give my question another try today. For what it's worth, the following seems somewhat shorter and makes use of more elementary notions:
We'll consdier two different types of subgroups. Those that contain reflections (elements of the form $r^xs$), and those that do not.
If $H \leq D_n$ doesn't contain a reflection, then it is a subgroup of $\langle r \rangle$, and is thus equal to $\langle r^d \rangle$ where $d|n$.
Suppose $H \leq D_n$ does contain a reflection, then since $1=r^n \in H$, $H \cap \langle r \rangle \neq \emptyset$. Let $d$ be the smallest positive number such that $r^d \in H$. If $r^e \in H-\langle r^d \rangle$ and $e=dk+f$ for $f>0$ then $r^f \in H$, which contradicts $d$ being minimal. Thus $H=\langle r^d \rangle \cup \{ \text{reflections} \}$. Let $r^xs \in H$ so that $x$ is again minimal. We can see $H$ contains
$$\{ r^{dk},r^{dk+x}s:0\leq k \leq \frac{n}{d}-1 \}$$
and if $H$ contains another reflection $r^ys$ with $0\leq y<n$, then $r^yss^{-1}r^{-x} = r^{y-x} \in \langle r^d \rangle$ implies $y=dh+x$. Therefore $h=\frac{y-x}{d}<\frac{n}{d}$ and
$$H=\{ r^{dk},r^{dk+x}s:0\leq k \leq \frac
{n}{d}-1 \}$$.
One can then use the same argument as Konrad to show this set is equal to $\langle r^d,r^is \rangle$ where $d|n$ & $0\leq i \leq d-1$. If $\langle r^d, r^is \rangle = \langle r^e, r^js \rangle$ then by the argument presented before $d=e$, so all such sets are different. Furthermore $\langle r^d \rangle \neq \langle r^e, r^js \rangle$ since only the second one contains a reflection, so the two lists of subgroups are disjoint.