[proofplan]
We reduce the variational statement to the corresponding one-variable statement by restricting the functional $J$ to the line of admissible perturbations through $y$ in direction $h$. Admissibility ensures that this restricted function is defined on a two-sided interval around $0$, and local extremality of $y$ forces the restricted function to have a local extremum at $0$. We then prove directly from the definition of the derivative that a differentiable real-valued function with a two-sided local extremum has derivative $0$. Finally, the definition of the first variation identifies this derivative with $\delta J[y;h]$.
[/proofplan]
[step:Restrict the functional to the admissible line through $y$]
Because $h$ is an admissible variation at $y$, there exists $\eta > 0$ such that $y+\varepsilon h \in \mathcal A$ for every $\varepsilon \in (-\eta,\eta)$. Define the one-variable map
\begin{align*}
f: (-\eta,\eta) \to \mathbb{R}, \qquad f(\varepsilon) := J[y+\varepsilon h].
\end{align*}
By hypothesis, $f$ is differentiable at $0$.
If $h = 0$, then $f(\varepsilon)=J[y]$ for every $\varepsilon \in (-\eta,\eta)$, so $f'(0)=0$. Hence assume $h \ne 0$ for the remaining argument. Then $\|h\|_{C^1}>0$.
[/step]
[step:Use local extremality of $y$ to get a one-variable extremum at $0$]
Assume first that $y$ is a local minimiser of $J$. Then there exists $r>0$ such that for every $z \in \mathcal A$ with $\|z-y\|_{C^1}<r$,
\begin{align*}
J[y] \leq J[z].
\end{align*}
Define
\begin{align*}
\rho := \min\left\{\eta,\frac{r}{\|h\|_{C^1}}\right\}.
\end{align*}
For every $\varepsilon \in (-\rho,\rho)$, admissibility gives $y+\varepsilon h \in \mathcal A$, and homogeneity of the $C^1$ norm gives
\begin{align*}
\|(y+\varepsilon h)-y\|_{C^1} = |\varepsilon|\,\|h\|_{C^1} < r.
\end{align*}
Therefore
\begin{align*}
f(0)=J[y] \leq J[y+\varepsilon h]=f(\varepsilon)
\end{align*}
for every $\varepsilon \in (-\rho,\rho)$. Thus $f$ has a local minimum at $0$.
If $y$ is a local maximiser, the same argument with the reversed inequality gives
\begin{align*}
f(0) \geq f(\varepsilon)
\end{align*}
for every $\varepsilon \in (-\rho,\rho)$, so $f$ has a local maximum at $0$.
[guided]
The purpose of this step is to convert the local extremum of the functional $J$ into an ordinary local extremum of the real-valued function $f$. The admissibility condition is essential here: it guarantees that the entire small curve $\varepsilon \mapsto y+\varepsilon h$ remains inside the admissible class $\mathcal A$, so that $J[y+\varepsilon h]$ is defined for both positive and negative $\varepsilon$ near $0$.
Assume $y$ is a local minimiser. By definition of local minimality in the $C^1$ norm, there exists $r>0$ such that
\begin{align*}
J[y] \leq J[z]
\end{align*}
whenever $z \in \mathcal A$ and $\|z-y\|_{C^1}<r$. We need to choose $\varepsilon$ small enough so that $z=y+\varepsilon h$ lies in this $C^1$ ball. Since $h \ne 0$, the number $\|h\|_{C^1}$ is positive, and we define
\begin{align*}
\rho := \min\left\{\eta,\frac{r}{\|h\|_{C^1}}\right\}.
\end{align*}
If $\varepsilon \in (-\rho,\rho)$, then $\varepsilon \in (-\eta,\eta)$, so admissibility gives $y+\varepsilon h \in \mathcal A$. Also,
\begin{align*}
\|(y+\varepsilon h)-y\|_{C^1} = \|\varepsilon h\|_{C^1} = |\varepsilon|\,\|h\|_{C^1} < r.
\end{align*}
Thus the local minimality inequality applies to $z=y+\varepsilon h$, giving
\begin{align*}
f(0)=J[y] \leq J[y+\varepsilon h]=f(\varepsilon).
\end{align*}
This is exactly the statement that $f$ has a local minimum at $0$.
If $y$ is instead a local maximiser, the same radius choice gives the same admissibility and $C^1$-closeness. The only change is the extremality inequality:
\begin{align*}
J[y] \geq J[y+\varepsilon h].
\end{align*}
Equivalently,
\begin{align*}
f(0) \geq f(\varepsilon)
\end{align*}
for every $\varepsilon \in (-\rho,\rho)$, so $f$ has a local maximum at $0$.
[/guided]
[/step]
[step:Prove that the derivative of the restricted function at the extremum is zero]
We prove the assertion for a local minimum; the local maximum case is obtained by reversing the inequalities. Since $f$ has a local minimum at $0$, there exists $\rho>0$ such that
\begin{align*}
f(0) \leq f(\varepsilon)
\end{align*}
for every $\varepsilon \in (-\rho,\rho)$.
For every $\varepsilon \in (0,\rho)$,
\begin{align*}
\frac{f(\varepsilon)-f(0)}{\varepsilon} \geq 0.
\end{align*}
Taking the limit as $\varepsilon \downarrow 0$ and using differentiability of $f$ at $0$ gives
\begin{align*}
f'(0) \geq 0.
\end{align*}
For every $\varepsilon \in (-\rho,0)$, the numerator $f(\varepsilon)-f(0)$ is non-negative while the denominator $\varepsilon$ is negative, so
\begin{align*}
\frac{f(\varepsilon)-f(0)}{\varepsilon} \leq 0.
\end{align*}
Taking the limit as $\varepsilon \uparrow 0$ and using differentiability of $f$ at $0$ gives
\begin{align*}
f'(0) \leq 0.
\end{align*}
Therefore $f'(0)=0$.
If $f$ has a local maximum at $0$, then $f(0)\geq f(\varepsilon)$ near $0$, and the same right-hand and left-hand quotient argument gives $f'(0)\leq 0$ and $f'(0)\geq 0$, respectively. Hence again $f'(0)=0$.
[/step]
[step:Identify the derivative with the first variation]
By definition of the first variation in the direction $h$,
\begin{align*}
\delta J[y;h] := f'(0).
\end{align*}
The preceding step gives $f'(0)=0$. Hence
\begin{align*}
\delta J[y;h]=0.
\end{align*}
This proves the necessary first variation condition.
[/step]