[proofplan]
The product bundle has a canonical nowhere-zero frame, and that frame determines an orientation of every fibre. Conversely, an orientation of a real line bundle lets us choose local frames that are positive in the oriented fibres. After passing to a locally finite oriented bundle-chart refinement, a smooth [partition of unity](/page/Partition%20of%20Unity) averages these positive local frames into a global nowhere-zero section. That section is a global frame, hence gives a vector bundle isomorphism with $M \times \mathbb{R}$.
[/proofplan]
[step:Use the product frame to orient the product bundle]
Assume first that there is a smooth vector bundle isomorphism
\begin{align*}
\Phi: M \times \mathbb{R} \to L
\end{align*}
over $M$. For each $x \in M$, let
\begin{align*}
e_x := \Phi(x, 1) \in L_x.
\end{align*}
Since $\Phi_x: \mathbb{R} \to L_x$ is a linear isomorphism on each fibre, $e_x \neq 0$. Declare the ordered basis $(e_x)$ of the one-dimensional real [vector space](/page/Vector%20Space) $L_x$ to be positive. In any local bundle chart obtained by restricting $\Phi$, this orientation is represented by the standard positive basis $(1)$ of $\mathbb{R}$, so the orientations vary smoothly. Hence $L$ is orientable.
[/step]
[step:Choose positive local frames from the given orientation]
Assume conversely that $L$ is orientable. By definition of orientability for a real vector bundle, there exists a smooth open cover $(U_i)_{i \in I}$ of $M$ by bundle-chart domains and, for each $i \in I$, a smooth local frame $e_i: U_i \to L$ such that $e_i(x)$ is a positive basis of the oriented one-dimensional vector space $L_x$ for every $x \in U_i$.
On each nonempty overlap $U_i \cap U_j$, there is a unique smooth transition function
\begin{align*}
g_{ij}: U_i \cap U_j &\to \mathbb{R}^{\times}
\end{align*}
defined by
\begin{align*}
e_j(x) = g_{ij}(x)e_i(x), \qquad x \in U_i \cap U_j.
\end{align*}
Because both $e_i(x)$ and $e_j(x)$ are positive bases of the oriented line $L_x$, the scalar $g_{ij}(x)$ is positive. Thus
\begin{align*}
g_{ij}: U_i \cap U_j \to \mathbb{R}_{>0}.
\end{align*}
[/step]
[step:Glue the positive local frames into a global nowhere-zero section]
Refine the oriented bundle-chart cover, if necessary, to a locally finite oriented bundle-chart cover $(V_i)_{i \in I}$, and write $e_i: V_i \to L$ for the corresponding positive local frame. This refinement exists because smooth manifolds are paracompact and every open cover admits a locally finite smooth refinement. Choose a smooth partition of unity $(\varphi_i)_{i \in I}$ subordinate to $(V_i)_{i \in I}$ by the [smooth partition of unity theorem](/theorems/3917) for manifolds. Thus each map $\varphi_i: M \to [0,1]$ is smooth, $\operatorname{supp}\varphi_i \subset V_i$, the family of supports is locally finite, and
\begin{align*}
\sum_{i \in I} \varphi_i(x) = 1
\end{align*}
for every $x \in M$.
Extend each local frame term by zero outside $V_i$ in the expression $\varphi_i e_i$, and define the smooth section $s: M \to L$ by
\begin{align*}
s(x) = \sum_{i \in I} \varphi_i(x)e_i(x).
\end{align*}
The sum is locally finite, hence defines a smooth section.
Fix $x \in M$, and choose an index $k \in I$ with $x \in V_k$. For every $i$ with $\varphi_i(x) \neq 0$, we have $x \in V_i \cap V_k$, and therefore
\begin{align*}
e_i(x) = g_{ki}(x)e_k(x)
\end{align*}
with $g_{ki}(x) > 0$. Hence
\begin{align*}
s(x)
= \sum_{i \in I} \varphi_i(x)e_i(x)
= \left(\sum_{i \in I} \varphi_i(x)g_{ki}(x)\right)e_k(x).
\end{align*}
Every summand $\varphi_i(x)g_{ki}(x)$ is nonnegative, and at least one is positive because $\sum_i \varphi_i(x)=1$. Therefore the scalar coefficient is positive, so $s(x) \neq 0$. Since $x$ was arbitrary, $s$ is a global nowhere-zero smooth section of $L$.
[guided]
The purpose of the partition of unity is to combine the local positive generators without cancellation. First refine the oriented bundle-chart cover to a locally finite oriented bundle-chart cover $(V_i)_{i \in I}$, with positive local frame $e_i: V_i \to L$ on each $V_i$. The refinement is available because smooth manifolds are paracompact, and the smooth partition of unity theorem then gives a smooth partition of unity $(\varphi_i)_{i \in I}$ subordinate to $(V_i)_{i \in I}$. Thus each map $\varphi_i: M \to [0,1]$ is smooth, $\operatorname{supp}\varphi_i \subset V_i$, only finitely many $\varphi_i$ are nonzero near any fixed point, and
\begin{align*}
\sum_{i \in I} \varphi_i(x) = 1
\end{align*}
for every $x \in M$.
Define the section $s: M \to L$ by
\begin{align*}
s(x) = \sum_{i \in I} \varphi_i(x)e_i(x).
\end{align*}
This is a legitimate smooth section because the cover is locally finite: near each point of $M$, only finitely many summands occur.
The only possible danger is that the weighted sum of local frame vectors could vanish. The orientation prevents this. Fix $x \in M$, and choose $k \in I$ with $x \in V_k$. We use $e_k(x)$ as the reference positive basis of the line $L_x$. If $\varphi_i(x) \neq 0$, then $x \in \operatorname{supp}\varphi_i \subset V_i$, so $x \in V_i \cap V_k$. On this overlap the two positive frames are related by a positive transition function:
\begin{align*}
e_i(x) = g_{ki}(x)e_k(x), \qquad g_{ki}(x) > 0.
\end{align*}
Therefore
\begin{align*}
s(x)
= \sum_{i \in I} \varphi_i(x)e_i(x)
= \left(\sum_{i \in I} \varphi_i(x)g_{ki}(x)\right)e_k(x).
\end{align*}
Each coefficient $\varphi_i(x)g_{ki}(x)$ is nonnegative, and at least one is positive because the partition of unity sums to $1$ at $x$. Hence
\begin{align*}
\sum_{i \in I} \varphi_i(x)g_{ki}(x) > 0.
\end{align*}
Since $e_k(x) \neq 0$, it follows that $s(x) \neq 0$. This proves that the glued section is nowhere zero.
[/guided]
[/step]
[step:Turn the nowhere-zero section into a global product-form isomorphism]
Define the smooth bundle map $\Psi: M \times \mathbb{R} \to L$ by
\begin{align*}
\Psi(x,t) = t\,s(x).
\end{align*}
For each $x \in M$, the fibre map $\Psi_x: \mathbb{R} \to L_x$ is given by
\begin{align*}
\Psi_x(t) = t\,s(x),
\end{align*}
and it is a linear isomorphism because $s(x) \neq 0$ and $L_x$ is one-dimensional. The map $\Psi$ is smooth because $s$ is smooth and scalar multiplication in the vector bundle is smooth.
It remains only to note that the inverse is smooth. On a bundle-chart neighbourhood $V_i$, write
\begin{align*}
s(x) = a_i(x)e_i(x)
\end{align*}
for the unique smooth function $a_i: V_i \to \mathbb{R}_{>0}$. Then every vector $v \in L_x$ with $x \in V_i$ has a unique expression $v = b e_i(x)$, and locally
\begin{align*}
\Psi^{-1}(v) = \left(x, \frac{b}{a_i(x)}\right).
\end{align*}
Since $a_i$ is smooth and nowhere zero, this local formula is smooth. Hence $\Psi$ is a smooth vector bundle isomorphism
\begin{align*}
M \times \mathbb{R} \cong L.
\end{align*}
Combining this with the first step proves the equivalence.
[/step]