It is aligned correctly. If you draw boxes around the characters with \fbox{} you can see what is happening:

latex.ltx defines \dots to be equivalent to \textellipsis in text mode and that command is defined as follows:
\DeclareTextCommandDefault{\textellipsis}{%
.\kern\fontdimen3\font
.\kern\fontdimen3\font
.\kern\fontdimen3\font}
So the additional space on the right is the third kern following the third dot, but there is, of course, no corresponding space on the left. So, as the box around the characters shows, the tabular is aligning the rows centre. It is just that the centre of \dots is not the centre of the middle dot but somewhere between that dot and the third one.
If you wish, you can adjust the spacing either by adding space on the left or adding negative space on the right:
\documentclass{article}
\begin{document}
\begin{tabular}{c}
\fbox{0}\\
\fbox{\kern\fontdimen3\font\dots}\\
\fbox{\dots\kern-\fontdimen3\font}\\
\end{tabular}
\end{document}

EDIT
If you wish, yes, you can create a command for this. For example:
\newcommand*\origkernlessdots{\dots\kern-\fontdimen3\font}
and then you can write
\begin{tabular}{c}
\fbox{0}\\
\fbox{\kern\fontdimen3\font\dots}\\
\fbox{\dots\kern-\fontdimen3\font}\\
\fbox{\origkernlessdots}\\
\end{tabular}
to produce

But, egreg's suggestion is simpler:
\newcommand*\kernlessdots{\dots\unkern}
and then
\begin{tabular}{c}
\fbox{0}\\
\fbox{\kern\fontdimen3\font\dots}\\
\fbox{\dots\kern-\fontdimen3\font}\\
\fbox{\origkernlessdots}\\
\fbox{\kernlessdots}\\
\end{tabular}
shows that \kernlessdots produces the same results as \origkernlessdots with simpler and more transparent code
