I just want to quickly confirm that I am using Zorn's correctly in this short proof.
There is a non-principal ultrafilter on any infinite set $X$.
Consider the filter $\mathcal{F}$ of of cofinite subsets of $X$. And consider the poset $P$ of filters containing $\mathcal{F}$, ordered by inclusion.
Since every chain of filters has their union as an upper bound, By Zorn's lemma, there is a maximal filter $\mathcal{G}$ in $P$, i.e. a maximal filter that contains $\mathcal{F}$. Since a maximal filter is an ultrafilter, it remains to show that $\mathcal{G}$ is non-principal. But $\{x\}^c$ is cofinite and hence an element of $\mathcal{F} < \mathcal{G}$. QED
(edit - I will assume every chain of filters has their union as an upper bound, because this is not what I want to check.)
That seems almost fine to me. Just one small observation: Zorn applied this way gives you a filter maximal not among all filters, but only among filters containing F. But in fact Zorn guarantees that in an inductive set (that is every chain has an upper bound) any element is bounded by some maximal element, so just apply this to the family of all filters and to the Fréchet filter.
Let me explain that corollary of Zorn. Given F inductive family and $x∈F$, there exists $a∈F$ such that a is maximal and $x≤a$. Proof: apply classical Zorn to the set $G={y∈F:x≤y}⊆F$ which is non-empty because it contains $x$. Call $x$ the obtained element (maximal in $G$). If $x≤z$ for some $z∈F$, then $z≥x$ and so $z∈G$, but now by maximality in $G$ we get $y=z$.
You can do that in the filter context as well: if the filter $\mathcal{G}$ you obtained is contained in another filter $\mathcal{H}$ then $\mathcal{H}$ contains $\mathcal{F}$ and so by maximality of $\mathcal{G}$ in P you have equality, that is $\mathcal{G}$ is maximal in the family of all filters.