Du musst `axis cs:` für die Koordinaten verwenden, dann funktioniert auch `fill between` so wie in der Anleitung beschrieben.
\documentclass{standalone}
\usepackage{pgfplots}
\usepgfplotslibrary{fillbetween}
\pgfplotsset{compat=1.10}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
axis lines=middle,
xlabel=$x$, ylabel=$y$,
xtick=\empty, ytick=\empty,
enlargelimits=0.05,
domain=-2:2,
no marks]
\path[name path=X] (axis cs:\pgfkeysvalueof{/pgfplots/xmin},0)
-- (axis cs:\pgfkeysvalueof{/pgfplots/xmax},0);
\addplot[name path=P,green]{3^x};
\addplot fill between [of=P and X, soft clip={domain=.5:1.5}];
\draw[blue,very thin] (axis cs:.5,8) node[above]{$a$} -- (axis cs:.5,0);
\draw[blue,very thin] (axis cs:1.5,8) node[above]{$b$} -- (axis cs:1.5,0);
\end{axis}
\end{tikzpicture}
\end{document}
[![alt text][1]][1]
Alternativ kann man auch `compat=newest` verwenden und `axis cs:` weglassen. Das Ergebnis ist das gleiche.
\documentclass{standalone}
\usepackage{pgfplots}
\usepgfplotslibrary{fillbetween}
\pgfplotsset{compat=newest}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
axis lines=middle,
xlabel=$x$, ylabel=$y$,
xtick=\empty, ytick=\empty,
enlargelimits=0.05,
domain=-2:2,
no marks]
\path[name path=X] (\pgfkeysvalueof{/pgfplots/xmin},0)
-- (\pgfkeysvalueof{/pgfplots/xmax},0);
\addplot[name path=P,green]{3^x};
\addplot fill between [of=P and X, soft clip={domain=.5:1.5}];
\draw[blue,very thin] (.5,8) node[above]{$a$} -- (.5,0);
\draw[blue,very thin] (1.5,8) node[above]{$b$} -- (1.5,0);
\end{axis}
\end{tikzpicture}
\end{document}
[1]: https://texwelt.de/wissen/upfiles/test_439.png