Fix $\varepsilon>0$. We can find $N(\varepsilon)$ such that for all $n,m\geq N(\varepsilon)$ and all $x,y\in X$ with $x\neq y$: $\frac{|(f_n-f_m)(x)-(f_n-f_m)(y)|}{d(x,y)}\leq \varepsilon$. Since $f_n$ converges to $f$ pointwise, we have, taking the limit $m\to\infty$ for $x,y$ fixed that \begin{equation} (*) \quad \forall n\geq N(\varepsilon),\forall x,y\in X,x\neq y\quad\frac{|(f_n-f)(x)-(f_n-f)(y)|}{d(x,y)}\leq \varepsilon. \end{equation} In particular for $n=N(\varepsilon)$ we have $\frac{|f(x)-f(y)|}{d(x,y)}\leq \varepsilon+\frac{|f_{N(\varepsilon)}(x)-f_{N(\varepsilon)}(y)|}{d(x,y)}$, which shows that $f$ is Lipschitz. Now we have to show that $|f-f_n|_L$ converges to $0$. But this is a consequence of $(*)$, since we only have to take the supremum over these $x$ and $y$.
Note that we don't need to use Ascoli's theorem to show that $\{f_n\}$ has a limit (just use the same proof when you show that the set of the continuous real functions on a compact space for the uniform norm is a Banach space).
Here compactness is needed to be sure that each Lipschitz function is bounded, since such a function is continuous.