This is a "pupil-level" problem from a Chinese software Xiaohongshu (Chinese version Twitter/Reddit/Quora/Insta). Unfortunately, its "official" solution is wrong: The solution states that $m! - n!$ contains a prime factor larger than $m$, however $37! - 35! = 35! \times (36 \times 37 - 1) = 35! \times 11^3$.
I found this problem extremely hard for me. I can only prove partial results:
(1)If $m \geq 2n > 4$, then $m! - n!$ is never a square.
Proof: Let $p$ be the largest prime $\leq n$. According to the Bertrand's postulate, $p > \frac{n}{2}$. Therefore, $v_p(n!) = 1$. Since $m \geq 2n \geq 2p$, $v_p(m!) \geq 2$, therefore $v_p(m!-n!) = 1$, hence $m! - n!$ is not a perfect square.
(2)If $m = n+1$, then $m! - n!$ is never a perfect square.
Proof: $m! - n! = n \times n! = n^2 \times (n-1)!$. However, $(n-1)!$ is never a perfect square when $n \geq 2$ (see here if you are confused). Therefore $(n+1)! - n!$ is not a perfect square for $n \geq 2$.
(3) If $popcount(\lfloor \frac{n}{2} \rfloor)$ is odd, then $m! - n!$ is never a perfect square.
Proof: The case $m = n+1$ has been discussed in (2). For $m > n+1$, by Legendre's formula, $v_2(m) = \sum\limits_{i=1}^\infty \lfloor \frac{m}{2^i} \rfloor > v_2(n)$, however $v_2(n)$ is an odd number, therefore $v_2(m! - n!)$ is also odd.
We note that the parity of $v_2(n)$ equals $popcount(\lfloor \frac{n}{2} \rfloor)$, where popcount means the number of $1$ in a number's binary representation. For example, $popcount(7) = popcount(111_2) = 3$ and $popcount(6) = popcount(110_2) = 2$.
This problem, on the one hand, seems easy. Intuition and Python experiments show the $m! - n!$ are never perfect squares, as it is "somehow difficult" to make $v_p(m! - n!)$ even for every $p$. On the other hand, it is also difficult. When $m > n+1$, it might require analysis on the expression $\Pi_{i=n+1}^m i - 1$, while the term "$-1$" is quite annoying. I am curious whether it is possible to introduce some analytic or algebraic tools?