Chains come with a predefined node distance. If you set it to 0, or even better, to an appropriate negative distance, you avoid the shift. What is this appropriate distance? You give the nodes a minimum size of 6pt, but you also go into a 45 degree direction. This suggests that this distance is 6pt/sqrt(2) plus some outer sep. At least numerically this seems to fit rather well.
\documentclass[tikz,border=3.14mm]{standalone}
\usetikzlibrary{positioning, chains,calc}
\begin{document}
\begin{tikzpicture}[start chain = arc]
% with chain, no distance modified
\foreach \p [count=\X] in {{0,0}, {1,1}, {2,1.5}, {3,2}, {4, 1.5}, {5,1}, {6,0}} {
\node [draw, circle, minimum size = 6pt, on chain, join] at (\p) (u-\X) { };
\draw let \p1=(u-\X) in node[anchor=south] at (u-\X.north) {\x1}
node[anchor=north] at (u-\X.south) {\y1};
}
% chain, node distance set to 0
\begin{scope}[yshift =-3cm,start chain=arc2,node distance=0pt]
\foreach \p [count=\X] in {{0,0}, {1,1}, {2,1.5}, {3,2}, {4, 1.5}, {5,1}, {6,0}} {
\node [draw, circle, minimum size = 6pt, on chain, join] at (\p) (m-\X) { };
\draw let \p1=(m-\X) in node[anchor=south] at (m-\X.north) {\x1}
node[anchor=north] at (m-\X.south) {\y1};
}
\end{scope}
% chain,
\begin{scope}[yshift =-6cm,start chain=arc3,node distance={-(6/sqrt(2))*1pt
-2*\pgfkeysvalueof{/pgf/outer xsep}-\pgflinewidth/sqrt(2)}]
\foreach \p [count=\X] in {{0,0}, {1,1}, {2,1.5}, {3,2}, {4, 1.5}, {5,1}, {6,0}} {
\node [draw, circle, minimum size = 6pt, on chain, join] at (\p) (n-\X) { };
\draw let \p1=(n-\X) in node[anchor=south] at (n-\X.north) {\x1}
node[anchor=north] at (n-\X.south) {\y1};
}
\end{scope}
% without chain
\begin{scope}[yshift = -9cm]
\foreach \p [count=\X] in {{0,0}, {1,1}, {2,1.5}, {3,2}, {4, 1.5}, {5,1}, {6,0}} {
\node [draw, circle, minimum size = 6pt] at (\p)
(l-\X) {};
\draw let \p1=(l-\X) in node[anchor=south] at (l-\X.north) {\x1}
node[anchor=north] at (l-\X.south) {\y1};
}
\end{scope}
\end{tikzpicture}
\end{document}

Whether this is the full explanation, I don't know.