$\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 $\tilde{M}$ for the universal cover of $M$, this amounts to showing that the first differential
$$\partial_1 \otimes_{\zz\pi} \B \colon \ch^{\lf}_1(\tilde{M}) \otimes_{\zz\pi} \B \rightarrow \ch^{\lf}_0(\tilde{M}) \otimes_{\zz\pi} \B$$
of the locally finite singular chain complex is surjective, for which $\partial_1$ being surjective before tensoring is enough. We can verify $\partial_1$ is surjective by elementary means: Fix a locally finite singular 0-chain $\sigma$; it is necessarily supported on a discrete subset of $\tilde{M}$. Since $\tilde{M}$ is non-compact (and second-countable), we can find a countably infinite discrete subset $$\{x_n : n \in \nn\} \subseteq\tilde{M}$$ which contains the support of $\sigma$. Thus $\sigma$ is a formal sum of the form $$\sigma = \sum_{n \in \nn}a_n x_n$$
with $a_n \in \zz$. Now for each $n \in \nn$ we can find a path $\gamma_n : [0,1] \rightarrow M$ connecting $x_{n+1}$ to $x_{n}$ such that the formal sum $$\tau := \sum_{n \in \nn}b_n \gamma_n$$
with the coefficients $b_n := \sum_{j \leq n} a_j$, is a locally finite $1$-chain with $\partial_1(\tau) = \sigma$.