Wenn die x-Koordinate für die `shift` Option erst berechnet werden muss und in der Rechnung Klammern vorkommen, muss diese Berechnung der x-Koordinate in geschweiften Klammern stehen. Das hat nichts mit `\foreach` zu tun.
\documentclass[margin=10pt,tikz]{standalone}
\begin{document}
\begin{tikzpicture}[line cap=round, line join=round]
\draw [->] (-1,0) -- (6,0) node[right] {$x$};
\draw [shift={({sqrt(2)},0)}] (0pt,2pt) -- (0pt,-2pt) node[font=\tiny,below] {$\sqrt{2}$};
\end{tikzpicture}
\end{document}
Wenn man im oben stehenden Beispiel `shift={({sqrt(2)},0)}` durch `shift={(sqrt(2),0)}` ersetzen würde, dann würde man ebenfalls die Fehlermeldung `! Package pgf Error: No shape named sqrt(2 is known` erhalten. Das liegt daran, dass alles zwischen der öffnenden Koordinatenklammer `(` und der ersten schließenden `)` runden Klammer als Nodenamen interpretiert wird, wenn darin kein Komma vorkommt.
Verwende deshalb entweder `({\x},0)` als Koordinatenangabe für `shift` oder `{{sqrt(x)}}` im Argument von `\foreach`, da die äußere geschweifte Klammer beim Lesen des Argumentes entfernt wird.
Also
\documentclass[margin=10pt,tikz]{standalone}
\begin{document}
\begin{tikzpicture}[line cap=round, line join=round]
\draw [->] (-1,0) -- (6,0) node[right] {$x$};
\foreach \x/\y in {0/$0$,1/$1$,sqrt(2)/$\sqrt{2}$,pi/$\pi$,5/$5$}
\draw [shift={({\x},0)}] (0pt,2pt) -- (0pt,-2pt) node[font=\tiny,below] {\y};
\end{tikzpicture}
\end{document}
oder
\documentclass[margin=10pt,tikz]{standalone}
\begin{document}
\begin{tikzpicture}[line cap=round, line join=round]
\draw [->] (-1,0) -- (6,0) node[right] {$x$};
\foreach \x/\y in {0/$0$,1/$1$,{{sqrt(2)}}/$\sqrt{2}$,pi/$\pi$,5/$5$}
\draw [shift={(\x,0)}] (0pt,2pt) -- (0pt,-2pt) node[font=\tiny,below] {\y};
\end{tikzpicture}
\end{document}
![alt text][1]
----------
Auch wenn Du bei der Konstruktion von Pfaden Berechnungen für die Koordinaten durchführen lässt, die Klammern enthalten, musst Du diese durch geschweifte Klammern schützen. Hier ist dazu mal noch ein Beispiel:
\documentclass[margin=10pt,tikz]{standalone}
\begin{document}
\begin{tikzpicture}
\draw[help lines,step=.5cm](0,0)grid(1.5,5);
\draw (0,0)--({sqrt(2)},0)--({sqrt(2)},pi-.5)--(0,{sqrt(2)+pi})--cycle;
\end{tikzpicture}
\end{document}
[1]: http://texwelt.de/wissen/upfiles/tw_fsqrt.png