[proofplan]
We prove the equality by mutual containment. An element that annihilates the direct sum must annihilate each summand, because every element of a summand can be embedded as a vector supported at one index. Conversely, an element that annihilates every summand annihilates every finite-support tuple in the direct sum componentwise. The empty-index case is handled separately by the standard convention that the direct sum over the empty family is the zero module and the empty intersection is $R$.
[/proofplan]
[step:Handle the empty family by the zero module convention]
Assume first that $I=\varnothing$. By definition, the direct sum over the empty family is the zero left $R$-module $0$. Therefore every $r \in R$ annihilates it, so
\begin{align*}
\operatorname{Ann}_R\left(\bigoplus_{i \in \varnothing} M_i\right)=\operatorname{Ann}_R(0)=R.
\end{align*}
By the convention stated in the theorem, the empty intersection is also $R$:
\begin{align*}
\bigcap_{i \in \varnothing}\operatorname{Ann}_R(M_i)=R.
\end{align*}
Thus the asserted equality holds when $I=\varnothing$. For the rest of the proof, assume $I \neq \varnothing$.
[/step]
[step:Embed each summand into the direct sum to prove the first containment]
Let
\begin{align*}
N=\bigoplus_{i \in I} M_i.
\end{align*}
For each $i \in I$, define the canonical inclusion map
\begin{align*}
\iota_i: M_i \to N
\end{align*}
by letting $\iota_i(m)$ be the element of $N$ whose $i$-th component is $m$ and whose $j$-th component is $0$ for every $j \in I$ with $j \neq i$.
Let $r \in \operatorname{Ann}_R(N)$. We prove that $r \in \operatorname{Ann}_R(M_i)$ for every $i \in I$. Fix $i \in I$ and $m \in M_i$. Since $\iota_i(m) \in N$ and $r$ annihilates every element of $N$, we have
\begin{align*}
r \iota_i(m)=0_N.
\end{align*}
The scalar multiplication on $N$ is componentwise, so the $i$-th component of $r \iota_i(m)$ is $rm$. Since the $i$-th component of $0_N$ is $0_{M_i}$, it follows that
\begin{align*}
rm=0_{M_i}.
\end{align*}
Because $m \in M_i$ was arbitrary, $r \in \operatorname{Ann}_R(M_i)$. Because $i \in I$ was arbitrary,
\begin{align*}
r \in \bigcap_{i \in I}\operatorname{Ann}_R(M_i).
\end{align*}
Hence
\begin{align*}
\operatorname{Ann}_R(N)\subset \bigcap_{i \in I}\operatorname{Ann}_R(M_i).
\end{align*}
[guided]
Let
\begin{align*}
N=\bigoplus_{i \in I} M_i.
\end{align*}
To show that an element annihilating $N$ also annihilates each summand, we need a precise way to regard an element of $M_i$ as an element of the direct sum. For each $i \in I$, define the canonical inclusion map
\begin{align*}
\iota_i: M_i \to N
\end{align*}
by declaring that $\iota_i(m)$ has $i$-th component $m$ and has $j$-th component $0$ for every $j \in I$ with $j \neq i$. This element belongs to the direct sum because its support is contained in the singleton set $\{i\}$, hence is finite.
Now take $r \in \operatorname{Ann}_R(N)$. By definition of the annihilator of a left $R$-module, this means that $rx=0_N$ for every $x \in N$. We must prove that $r$ lies in every $\operatorname{Ann}_R(M_i)$. Fix an index $i \in I$ and an element $m \in M_i$. Since $\iota_i(m) \in N$, the defining property of $r$ gives
\begin{align*}
r \iota_i(m)=0_N.
\end{align*}
The module structure on a direct sum is componentwise. Therefore the $i$-th component of $r\iota_i(m)$ is $rm$, while the $i$-th component of $0_N$ is $0_{M_i}$. Equality in the direct sum is equality of all components, so
\begin{align*}
rm=0_{M_i}.
\end{align*}
Since this holds for every $m \in M_i$, we have $r \in \operatorname{Ann}_R(M_i)$. Since the index $i \in I$ was arbitrary, $r$ belongs to the intersection:
\begin{align*}
r \in \bigcap_{i \in I}\operatorname{Ann}_R(M_i).
\end{align*}
Thus
\begin{align*}
\operatorname{Ann}_R(N)\subset \bigcap_{i \in I}\operatorname{Ann}_R(M_i).
\end{align*}
[/guided]
[/step]
[step:Use finite support and componentwise multiplication to prove the reverse containment]
Let
\begin{align*}
r \in \bigcap_{i \in I}\operatorname{Ann}_R(M_i).
\end{align*}
We prove that $r \in \operatorname{Ann}_R(N)$. Let $x \in N$. By definition of the direct sum, $x$ is a family
\begin{align*}
x=(x_i)_{i \in I}
\end{align*}
with $x_i \in M_i$ for each $i \in I$ and with finite support
\begin{align*}
\operatorname{supp}(x)=\{i \in I : x_i \neq 0_{M_i}\}.
\end{align*}
Since $r \in \operatorname{Ann}_R(M_i)$ for every $i \in I$, we have
\begin{align*}
rx_i=0_{M_i}
\end{align*}
for every $i \in I$. The scalar multiplication on $N$ is componentwise, so
\begin{align*}
rx=(rx_i)_{i \in I}=(0_{M_i})_{i \in I}=0_N.
\end{align*}
Because $x \in N$ was arbitrary, $r$ annihilates every element of $N$. Therefore
\begin{align*}
r \in \operatorname{Ann}_R(N).
\end{align*}
Hence
\begin{align*}
\bigcap_{i \in I}\operatorname{Ann}_R(M_i)\subset \operatorname{Ann}_R(N).
\end{align*}
[/step]
[step:Conclude equality from the two containments]
The previous two steps give
\begin{align*}
\operatorname{Ann}_R(N)\subset \bigcap_{i \in I}\operatorname{Ann}_R(M_i)
\end{align*}
and
\begin{align*}
\bigcap_{i \in I}\operatorname{Ann}_R(M_i)\subset \operatorname{Ann}_R(N).
\end{align*}
Therefore
\begin{align*}
\operatorname{Ann}_R\left(\bigoplus_{i \in I} M_i\right)=\bigcap_{i \in I}\operatorname{Ann}_R(M_i).
\end{align*}
This proves the theorem.
[/step]