Das Zauberwort heißt \catcode. Der Category-Code eines Zeichens bestimmt, was für ein Token beim Einlesen des Quellcodes gebildet wird. Das bedeutet, sobald ein Zeichen gelesen ist, ist es zu spät dafür.
Genau damit arbeitet \verb. Deshalb ist \verb auch nicht so definiert, dass es selbst ein Argument einliest. Im LaTeX-Kern wirst Du also weder etwas wie \newcommand*{\verb}[1] noch etwas wie \def\verb#1 finden. Stattdessen beginnt es mit \def\verb{. Dann wird als zentrales Element eine Gruppe geöffnet, Category-Codes geändert (u. a. über \dospecials) und weitere Umdefinierungen vorgenommen und erst dann wird das Argument gelesen, wobei das im Fall on \verb auch noch ziemlich ungewöhnlich erfolgt, weil \verb eine sehr spezielle Form eines Argument verarbeitet. Am Ende muss natürlich auch noch die Gruppe wieder geschlossen und damit die Änderungen rückgängig gemacht werden.
Es wird also nicht etwa das Parsen unterdrückt, sondern der Parser umprogrammiert, bevor das Argument gelesen wird.
Es ist zu beachten, dass einige Zeichen im normalen Encoding von Fonts gar nicht in der gewünschten Form enthalten sind. Beispielsweise würde ein \ im normalen Textfont nicht funktionieren, weil auf der entsprechenden Code-Position ein anderes Zeichen liegt. Deshalb ergeben beispielsweise \string\test und \texttt{\string\test} unterschiedliche Ergebnisse.
In deinem Fall kommt erschwerend hinzu, dass Du offenbar gar nicht das Verhalten von \verb willst. Das würde nämlich \par als Text ausgeben und keinen Absatz erzeugen. Damit käme eher die Verwendung der alltt-Umgebung des Pakets
alltt in Frage, beispielsweise in der Form:
\documentclass{scrartcl}
\usepackage{alltt}
\makeatletter
\newcommand{\myCommand}{%
\begin{alltt}\@myCommand
}
\newcommand{\@myCommand}[1]{#1\end{alltt}}
\makeatother
\begin{document}
\myCommand{Hello, world!\par} % funktioniert natürlich
\myCommand{Hello_world!\par} % funktioniert natürlich auch
\end{document}
Die Gruppe (in Form der Umgebung alltt wird hier also geöffnet und damit Category-Codes geändert, bevor \@myCommand das Argument liest.
An dem Beispiel kann man auch zeigen, dass das ganze von \ttfamily abhängt:
\documentclass{scrartcl}
\usepackage{alltt}
\makeatletter
\newcommand{\myCommand}{%
\begin{alltt}\normalfont\@myCommand
}
\newcommand{\@myCommand}[1]{#1\end{alltt}}
\makeatother
\begin{document}
\myCommand{Hello, world!\par} % funktioniert natürlich
\myCommand{Hello_world!\par} % funktioniert natürlich auch
\end{document}
bringt nicht das gewünschte Ergebnis, weil normalerweise an der Code-Position von _ ein anderes Zeichen liegt. Man müsste also diverse Zeichen noch explizit umdefinieren, beispielsweise:
\documentclass{scrartcl}
\usepackage{alltt}
\makeatletter
\newcommand{\myCommand}{%
\begin{alltt}\normalfont\myCommand@extraspecials\@myCommand
}
\newcommand{\@myCommand}[1]{#1\end{alltt}}
\begingroup
\catcode`\_=\active
\gdef\myCommand@extraspecials{%
\catcode`\_=\active
\let_=\_
}
\makeatother
\begin{document}
\myCommand{Hello, world!\par} % funktioniert natürlich
\myCommand{Hello_world!\par} % funktioniert natürlich auch
\end{document}
Du siehst, das ganze kann je nachdem, was man braucht und will, recht aufwändig werden. Dagegen ist es recht einfach, ein zweites \verb zu definieren, also eine Anweisung, die sich tatsächlich wie \verb verhällt:
\documentclass{scrartcl}
\newcommand*{\myCommand}{}
\let\myCommand\verb
\begin{document}
\myCommand*+Hello, world!\par+ % funktioniert natürlich
\myCommand+Hello_world!\par+ % funktioniert natürlich auch
\end{document}
Wenn Du Dich tiefer mit Category-Codes und der Funktion des Scanners und des Parsers von TeX beschäftigen willst, sei auf TeX by Topic verwiesen (ist seit einigen Jahren frei erhältlich und zumindest bei TeX Live sogar dabei). Daneben natürlich auf das Standardwerk zu TeX: The TeXbook. Letzteres ist wirklich schwere Kost. Wer das verstanden hat, hat dann aber auch verstanden, wie TeX funktioniert und warum einige scheinbar einfache Dinge nicht ganz einfach zu lösen sind.