Induction details for proof of closure of regular languages under unions
Given a transition function $\delta\colon Q\times\Sigma\to Q$, the standard argument proceeds by defining an extended transition function $\hat{\delta}\colon Q\times\Sigma^*\to Q$ (following the notation in Sipser) 
that acts on strings (see J. E. Hopcroft, R. Motwani, J. D. Ullman. Introduction to Automata Theory, Languages and Computations 3ed., section 2.2.4 for a reference). 
This function is defined recursively by specifying 
$$\hat{\delta}(q,\varepsilon)=q \qquad\hbox{and}\qquad
\hat{\delta}(q,Wa)=\delta\bigl(\hat{\delta}(q,W),a\bigr)$$ for $W \in \Sigma^*$, 
$a\in\Sigma$ and $q\in Q$, and it is a simple exercise (with a proof sketched below) to show that (following the definition in Sipser)
a finite automaton $M=(Q,\Sigma, \delta, q_0, F)$ accepts a string $w\in\Sigma^*$ if and only if $\hat{\delta}(q_0,w)\in F$. 

The heart of our desired inductive argument lies in the following result.


  Let $w\in\Sigma^*$. Then, with notation as in the proof of Theorem 1.25 in Sipser, 
  we have
  $$\hat{\delta}\bigl((r_1, r_2), w\bigr) 
= \bigl(\hat{\delta}_{\!1}(r_1, w),
\hat{\delta}_{\!2}(r_2,w)\bigr).$$


Proof. We proceed by induction on $|w|$. The result follows from the definitions when $|w|=0$
as we must have $w=\varepsilon$. Suppose inductively that the result holds for all $w$ with $|w|&lt;n$.
Then, given $w \in \Sigma^*$ with $|w|=n$, we may write $w = w_1\dots w_n =: Ww_n$, so that
$$\begin{align}
\hat{\delta}\bigl((r_1,r_2),w\bigr)
&amp;=\hat{\delta}\bigl((r_1,r_2),Ww_n\bigr) \\
&amp;=\delta\Bigl(\hat{\delta}\bigl((r_1,r_2),W\bigr),w_n\Bigr) \\
&amp;=\delta\Bigl(\bigl(\hat{\delta}_{\!1}(r_1,W),\hat{\delta}_{\!2}(r_2,W)\bigr),w_n\Bigr) \\
&amp;=\Bigl(\delta_1\bigl(\hat{\delta}_{\!1}(r_1,W),w_n\bigr),
\delta_2\bigl(\hat{\delta}_{\!2}(r_2,W),w_n\bigr)\Bigr) \\
&amp;=\bigl(\hat{\delta}_{\!1}(r_1, Ww_n),
\hat{\delta}_{\!2}(r_2,Ww_n)\bigr) \\
&amp;= \bigl(\hat{\delta}_{\!1}(r_1, w),
\hat{\delta}_{\!2}(r_2,w)\bigr)
\end{align}$$
as needed.

Using the above result, it is straightforward to finish the proof of correctness.
Indeed, since $F = (F_1 \times Q_2) \cup (Q_1 \times F_2)$, it follows that
$$\hat{\delta}(q_0,w)\in F$$
if and only if
$$\hat{\delta}_{\!1}(q_1, w)\in F_1\qquad\hbox{or}\qquad\hat{\delta}_{\!2}(q_2, w)\in F_2.$$
In other words, $M$ recognizes a string $w\in\Sigma^*$ if and only if $M_1$ or $M_2$ recognizes it.



Addendum. We now sketch a proof that the two definitions of a finite automaton accepting a string are equivalent. The  first definition is given on page 40 of Sipser, we repeat it here for convenience:


  Let $M = (Q,\Sigma,\delta,q_0,F)$ be a finite automaton and let $w = w_1w_2\dots w_n \in \Sigma^*$ be a string. Then $M$ accepts $w$ if $w=\varepsilon$ and $q_0\in F$, or if $n&gt;0$ and a sequence of states $r_0$,$r_1$, ..., $r_n$ in $Q$ exists such that $r_0 = q_0$, $\delta(r_i,w_{i+1}) = r_{i+1}$ for $0\le i\le n-1$, and $r_n \in F$.


We thus have to show the following:


  A finite automaton $M = (Q,\Sigma,\delta,q_0,F)$ accepts $w\in\Sigma^*$ if and only if $\hat{\delta}(q_0,w)\in F$.


Proof sketch. If $M$ accepts $w = w_1\dots w_n$, then $\hat{\delta}(q_0,w)=\delta\bigl(\hat{\delta}(q_0,w_1\dots w_{n-1}),w_n\bigr)=\delta(r_{n-1},w_n)=r_n$ by an inductive argument; intuitively this corresponds to showing that the recursive definition of $\hat{\delta}$ was defined 'correctly.' Conversely if $\hat\delta(q_0,w)\in F$, then we may build the sequence $r_0 = q_0$, $\;r_1 = \delta(r_0,w_1)$, ... inductively.