`frame` ist eine ziemlich *eigenartige* Umgebung und man sollte keinesfalls erwarten, dass Argumentexpansion und ähnliche Dinge darin ganz normal funktioniert. So ginge beispielsweise auch:
bereits:
\documentclass{beamer}
\usepackage{xparse}
\begin{document}
\ExplSyntaxOn
\begin {frame}
\frametitle {Titel}
Argument
\int_step_inline:nnnn {1} {1} {5} {#1}
\end {frame}
\ExplSyntaxOff
\end{document}
genauso schief. Vermeidet man jedoch das `#1` bzw. in Deinem Beispiel das `##1` innerhalb des `frames`, indem man eine passende Benutzeranweisung definiert, dann funktioniert es:
\documentclass{beamer}
\usepackage{xparse}
\ExplSyntaxOn
\NewDocumentCommand \OneToX {m}
{
\int_step_inline:nn {#1} {##1}
}
\ExplSyntaxOff
\NewDocumentCommand \MeinBefehl {m}
{
\begin {frame}
\frametitle {Titel}
#1
\OneToX{5}
\end {frame}
}
\begin{document}
\MeinBefehl{Argument}
\end{document}