You can choose where to put the highlight (behind everything, behind the plots but above the grid, on top of the plots, ...) if you put set layers in the axis options and use the very clever code from Andrew Stacey's answer to “Z-level” in TikZ.
I've defined a new style highlight=<start>:<end> that highlights the desired area. The drawing style (color, opacity) can be specified using the optional highlight style=<options> key, the layer on which the highlight will be drawn is set using highlight layer=<layer name>:

\addplot+[no marks, highlight=1:4] {rnd/2+sin(deg(x))};
\addplot+[no marks, highlight layer=axis ticks, highlight style={red!20}, highlight=6:9] {rnd/2+cos(deg(x))};
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\pgfkeys{%
/tikz/on layer/.code={
\pgfonlayer{#1}\begingroup
\aftergroup\endpgfonlayer
\aftergroup\endgroup
}
}
\pgfplotsset{
highlight/.code args={#1:#2}{
\fill [every highlight] ({axis cs:#1,0}|-{rel axis cs:0,0}) rectangle ({axis cs:#2,0}|-{rel axis cs:0,1});
},
/tikz/every highlight/.style={
on layer=\pgfkeysvalueof{/pgfplots/highlight layer},
blue!20
},
/tikz/highlight style/.style={
/tikz/every highlight/.append style=#1
},
highlight layer/.initial=axis background
}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
set layers,
domain=0:10,
grid=both
]
\addplot+[no marks, highlight=1:4] {rnd/2+sin(deg(x))};
\addplot+[no marks, highlight layer=axis ticks, highlight style={red!20}, highlight=6:9] {rnd/2+cos(deg(x))};
\end{axis}
\end{tikzpicture}
\end{document}
set layersto theaxisoptions and using Andrew Stacey's code from his answer to “Z-level” in TikZ, you can say\draw[fill=blue!10, on layer=axis background] ...to put the rectangle behind the plots even if it's defined after the\addplotcommands. – Jake Mar 19 '13 at 19:23