$\DeclareMathOperator{\co}{H}
\DeclareMathOperator{\ch}{C}
\newcommand{\zz}{\mathbb{Z}}
\newcommand{\nn}{\mathbb{N}}
\newcommand{\A}{\mathcal{A}}
\newcommand{\B}{\mathcal{B}}
\DeclareMathOperator{\lf}{lf}$Let me put together an answer following the pointers in the comments. By Whitehead's result stated in the question and smoothability in lower dimensions we may assume $d \geq 4$. Write $\pi := \pi_1(M)$ for brevity.
As an ANR, $M$ has the homotopy type of a CW-complex, so by a result of Wall it suffices to show that $\co^{j}(M; \A) = 0$ whenever $j \geq d$ and $\A$ is a $\zz \pi$-module. Writing $w$ for the orientation $\zz \pi$-module, by Poincaré duality we have $$\co^j(M;\A) \cong \co^{\lf}_{d-j}(M; \A \otimes_{\zz} w)\,,$$
where $\co^{\lf}_{*}$ denotes the locally finite singular homology (sometimes called the Borel-Moore homology). Therefore the only nontrivial thing to check is the vanishing of the 0-th locally finite homology for every $\zz \pi$-module $\B$. Writing $p\colon \tilde{M} \rightarrow M$ for the universal cover, this amounts to showing that the first differential
$$\partial_1 \otimes_{\zz\pi} \B \colon \ch^{\lf,\pi}_1(\tilde{M}) \otimes_{\zz\pi} \B \rightarrow \ch^{\lf,\pi}_0(\tilde{M}) \otimes_{\zz\pi} \B$$
is surjective, for which $\partial_1$ being surjective before tensoring is enough.
Here $\ch^{\lf,\pi}_{*}(\tilde{M})$ is the locally $\pi$-finite (singular) chain complex of $\tilde{M}$, that is, the subcomplex of locally finite chains in $\tilde{M}$ that project to locally finite chains in $M$.
We can verify $\partial_1$ is surjective by elementary means: Fix a locally $\pi$-finite singular 0-chain $\tilde{\sigma}$; then $\sigma := p(\tilde{\sigma})$ in $M$ is necessarily supported on a discrete subset of $M$. Since $M$ is non-compact (and second-countable), we can find countably infinite discrete subsets
$$
\{\tilde{x}_n : n \in \nn\} \subseteq \tilde{M}
\\
\{x_n : n \in \nn\} \subseteq M
$$
such that $p(\tilde{x}_n) = x_n$ and the former contains the support of $\tilde{\sigma}$. Thus $\tilde{\sigma}$ is a formal sum of the form $$\tilde{\sigma} = \sum_{n \in \nn}a_n \tilde{x}_n$$
with $a_n \in \zz$. Now for each $n \in \nn$ we can find a path $\tilde{\gamma}_n : [0,1] \rightarrow \tilde{M}$ connecting $\tilde{x}_{n+1}$ to $\tilde{x}_{n}$ such that the formal sum $$\tilde{\tau} := \sum_{n \in \nn}b_n \tilde{\gamma}_n$$
with the coefficients $b_n := \sum_{j \leq n} a_j$, is a locally $\pi$-finite $1$-chain in $\tilde{M}$ (because its projection $\tau:= p(\tilde{\tau})$ is locally finite in $M$) with $\partial_1(\tilde{\tau}) = \sigma$.