Something like this?
\documentclass[tikz,border=3mm]{standalone}
\usetikzlibrary{decorations}
\newcounter{icoord}
\pgfkeys{/tikz/.cd,
curved pipe/.cd,
radius/.store in=\CurvedPipeRadius,
radius=10pt,
step/.store in=\CurvedPipeStep,
step=1pt,
shade/.style={left color=gray,right color=gray,middle color=white}
}
\pgfdeclaredecoration{curved pipe}{initial}
{%
\state{initial}[width=\CurvedPipeStep,next state=cont] {%
\pgfmoveto{\pgfpoint{\CurvedPipeStep}{\CurvedPipeRadius}}%
\pgfpathlineto{\pgfpoint{0.3\pgflinewidth}{\CurvedPipeRadius}}%
\setcounter{icoord}{0}%
\pgfcoordinate{lastup-\number\value{icoord}}{\pgfpoint{1pt}{\CurvedPipeRadius}}%
\pgfcoordinate{lastdown-\number\value{icoord}}{\pgfpoint{1pt}{-1*\CurvedPipeRadius}}%
}
\state{cont}[width=\CurvedPipeStep]{%
\stepcounter{icoord}%
\pgfcoordinate{lastup-\number\value{icoord}}{\pgfpoint{\CurvedPipeStep}{\CurvedPipeRadius}}
\pgfcoordinate{lastdown-\number\value{icoord}}{\pgfpoint{\CurvedPipeStep}{-1*\CurvedPipeRadius}}
\pgfcoordinate{tmpup}{\pgfpoint{\CurvedPipeStep+0.3pt}{\CurvedPipeRadius}}
\pgfcoordinate{tmpdown}{\pgfpoint{\CurvedPipeStep+0.3pt}{-1*\CurvedPipeRadius}}
\pgfmathsetmacro\myshadingangle{0}%
\path[curved pipe/shade,shading angle=\myshadingangle]
(lastup-\the\numexpr\value{icoord}-1)
-- (tmpup) to[out=180,in=180] (tmpdown) -- (lastdown-\the\numexpr\value{icoord}-1)
to[out=180,in=180] cycle;%
\pgfmoveto{\pgfpointanchor{lastup-\the\numexpr\value{icoord}-1}{center}}%
\pgfpathlineto{\pgfpointanchor{lastup-\number\value{icoord}}{center}}%
\pgfmoveto{\pgfpointanchor{lastdown-\the\numexpr\value{icoord}-1}{center}}%
\pgfpathlineto{\pgfpointanchor{lastdown-\number\value{icoord}}{center}}%
}
\state{final}[width=\CurvedPipeStep]
{ % perhaps unnecessary but doesn't hurt either
\pgfmoveto{\pgfpointdecoratedpathlast}
\fill (tmpup) to[out=0,in=0] (tmpdown) to[out=-180,in=-180] cycle;
}
}
\begin{document}
\begin{tikzpicture}
\draw[decorate,decoration=curved pipe,curved pipe/radius=3mm,looseness=0.7]
(0,0) to[bend right] (8,3);
\end{tikzpicture}
\end{document}

Or without the pipe character, just shaded
\documentclass[tikz,border=3mm]{standalone}
\usetikzlibrary{decorations}
\newcounter{icoord}
\pgfkeys{/tikz/.cd,
curved and shaded/.cd,
radius/.store in=\CurvedPipeRadius,
radius=10pt,
step/.store in=\CurvedPipeStep,
step=1pt,
shade/.style={left color=gray,right color=gray,middle color=white}
}
\pgfdeclaredecoration{curved and shaded}{initial}
{%
\state{initial}[width=\CurvedPipeStep,next state=cont] {%
\pgfmoveto{\pgfpoint{\CurvedPipeStep}{\CurvedPipeRadius}}%
\pgfpathlineto{\pgfpoint{0.3\pgflinewidth}{\CurvedPipeRadius}}%
\setcounter{icoord}{0}%
\pgfcoordinate{lastup-\number\value{icoord}}{\pgfpoint{1pt}{\CurvedPipeRadius}}%
\pgfcoordinate{lastdown-\number\value{icoord}}{\pgfpoint{1pt}{-1*\CurvedPipeRadius}}%
}
\state{cont}[width=\CurvedPipeStep]{%
\stepcounter{icoord}%
\pgfcoordinate{lastup-\number\value{icoord}}{\pgfpoint{\CurvedPipeStep}{\CurvedPipeRadius}}
\pgfcoordinate{lastdown-\number\value{icoord}}{\pgfpoint{\CurvedPipeStep}{-1*\CurvedPipeRadius}}
\pgfcoordinate{tmpup}{\pgfpoint{\CurvedPipeStep+0.3pt}{\CurvedPipeRadius}}
\pgfcoordinate{tmpdown}{\pgfpoint{\CurvedPipeStep+0.3pt}{-1*\CurvedPipeRadius}}
\pgfmathsetmacro\myshadingangle{0}%
\path[curved and shaded/shade,shading angle=\myshadingangle]
(lastup-\the\numexpr\value{icoord}-1)
-- (tmpup) -- (tmpdown) -- (lastdown-\the\numexpr\value{icoord}-1)
-- cycle;%
\pgfmoveto{\pgfpointanchor{lastup-\the\numexpr\value{icoord}-1}{center}}%
\pgfpathlineto{\pgfpointanchor{lastup-\number\value{icoord}}{center}}%
\pgfmoveto{\pgfpointanchor{lastdown-\the\numexpr\value{icoord}-1}{center}}%
\pgfpathlineto{\pgfpointanchor{lastdown-\number\value{icoord}}{center}}%
}
\state{final}[width=\CurvedPipeStep]
{ % perhaps unnecessary but doesn't hurt either
\pgfmoveto{\pgfpointdecoratedpathlast}
}
}
\begin{document}
\begin{tikzpicture}
\draw[decorate,decoration=curved and shaded,curved and shaded/radius=3mm]
(0,0) to[bend right] (8,3);
\end{tikzpicture}
\end{document}

And here is another proposal, full credit goes to Paul Gaborit for this post. I changed a few things and stored some parameters in pgf keys: n is the number of recursions, f is the ratio of the current line width over the previous line width, color is, well, the color of the overlays and opacity the opacity. Yet conceptually it is really just Paul Gaborit's idea: redo the path in a different color and not with full opacity a couple of times while decreasing the line width.
\documentclass[tikz,border=3mm]{standalone}
\tikzset{% very much based on https://tex.stackexchange.com/a/80207/194703
pipe beam action/.style={
line width=\pgfkeysvalueof{/tikz/pipe/f}*\pgflinewidth,
draw=\pgfkeysvalueof{/tikz/pipe/color},
},
pipe beam recurs/.code={%
\pgfmathtruncatemacro{\level}{#1-1}%
\ifnum\level=0%
\tikzset{postaction={pipe beam action}}%
\else
\tikzset{postaction={pipe beam action,pipe beam recurs={\level}}}%
\fi
},
pipe beam/.style={pipe/.cd,#1,/tikz/.cd,
preaction={draw opacity=1,draw/.expanded=\pgfkeysvalueof{/tikz/pipe/color}},
postaction={draw opacity=\pgfkeysvalueof{/tikz/pipe/opacity},
pipe beam recurs={\pgfkeysvalueof{/tikz/pipe/n}}}},
pipe/.cd,n/.initial=10,color/.initial=white,f/.initial=0.95,
opacity/.initial=0.1
}
\begin{document}
\begin{tikzpicture}
\path[draw=black,line width=5pt,pipe beam]
(-2,0) to[bend right] (2,2);
\path[draw=black,line width=5pt,pipe beam={n=25,f=0.96}]
(-2,-1) to[bend right] (2,1);
\end{tikzpicture}
\end{document}
