This happens because \textwidth is the whole text width. And when you are in an enumerate environment, some of this width is occupied by the labels.
To get the correct spacing you should use the \textwidth minus the \leftmargin of the enumerate environment.
Also, the \fbox command has an \fboxsep, which is the space between the text and the box. The default for this is 3pt. You should also take this into account when creating the \parbox.
So the final code should be like this:
\documentclass{article}
\begin{document}
\begin{enumerate}
\item The Young King tells the story of the illegitimate shepherd son of the recently dead king's daughter of an unnamed country.
\fbox{%
\parbox{\dimexpr\textwidth-\leftmargin-\itemindent-2\fboxsep}{%
The Young King tells the story of the illegitimate shepherd son of the recently dead king's daughter of an unnamed country.
}%
}
\end{enumerate}
\end{document}
And the result is:

Though, notice that the text outside the box is now wider than the one inside. This is because of the \fboxsep. Now you have another option: set the \fboxsep to 0pt:
\documentclass{article}
\begin{document}
\begin{enumerate}
\item The Young King tells the story of the illegitimate shepherd son of the recently dead king's daughter of an unnamed country.
\setlength{\fboxsep}{0pt}
\fbox{%
\parbox{\dimexpr\textwidth-\leftmargin-\itemindent-2\fboxsep}{%
The Young King tells the story of the illegitimate shepherd son of the recently dead king's daughter of an unnamed country.
}%
}
\end{enumerate}
\end{document}
and the result will be:

It is up to you to decide which one you prefer.
noindentis placed before\begin{enumerate}, I could see the difference? – Tiina Feb 09 '18 at 08:08