TeX is trying to fill the page to the best of its ability.
The acmart
class puts glue (elastic space) before and after the section title to allow a good break in the text when filling the page.
You can reduce the allowed (+)vertical space by redefining the command \section
.
Then, in this case, the white space will appear at the bottom of the page because the next page begins with a subsection and obviously does not fit there.
The change will take effect throughout the document.
For consistency, it will be better to do the same, at least, with subsections.
Before

After

Add the code to your preamble:
\makeatletter
\renewcommand\section{\@startsection{section}{1}{\z@}%
{-.75\baselineskip \@plus -.2\p@ \@minus -.2\p@}% before \@plus -2\p@ <<<
{.25\baselineskip}%
{\ACM@NRadjust\@secfont}}
\renewcommand\subsection{\@startsection{subsection}{2}{\z@}%
{-.75\baselineskip \@plus -.2\p@ \@minus -.2\p@}% before \@plus -2\p@<<<
{.25\baselineskip}%
{\ACM@NRadjust\@subsecfont}}
\makeatother
\input
here, you can collect everything in one file and post it here. That makes it a lot easier for us to work with.cls
file) or something containing relevant definitions. Without those definitions it is imposible to know what is going on, and that's the meaning of "next time make the snipet into something others can test directly". None of your snipers can be tested by others and we don't know which ACM template are you using, so it is imposible to help