This is a very general fact about model categories and homotopy pullbacks, as evidenced by Zhen Lin's comment. It's also proven as a special case of Proposition 4.65 in Hatcher's book. Let me nevertheless spell out the argument precisely for topological spaces.
Define $E_p = \{ (y, \gamma) \in E \times B^{[0,1]} \mid p(y) = \gamma(0) \}$. There's a map (in fact a fibration) $q : E_p \to B$, $(y,\gamma) \mapsto \gamma(1)$, and the homotopy fiber is the fiber $F_p = q^{-1}(b_0)$. The inclusion $$i : F = p^{-1}(b_0) \to F_p$$ is given by $i(y) = (y, \mathrm{cst}_{b_0})$.
Define a homotopy $g_t : E_p \to B$, $(y,\gamma) \mapsto \gamma(t)$. Then $g_0(y, \gamma) = \gamma(0) = p(y)$, so $g_0$ lifts through $p$ by $\bar{g}_0 : E_p \to E$, $\bar{g}_0(y,\gamma) = y$ (i.e. $p \circ \bar{g}_0 = g_0$). Because $E \to B$ is a fibration, by the homotopy lifting property, there is a full lift $\bar{g}_t : E_p \to E$ of $g_t$ through $p$. In other words, $\bar{g}_t$ satisfies the following equation:
$$p(\bar{g}_t(y,\gamma)) = \gamma(t).$$
Now restrict everything to the fibers: let $h_t : F_p \to F_p$ be given by $h_t(y,\gamma) = \bigl(\bar{g}_t(y,\gamma), \gamma_{\mid [t,1]} \bigr)$ (because of the previous equation, this is in $F_p$). Then $h_0$ is the identity, whereas $h_1(y,\gamma) = (\bar{g}_1(y,\gamma), \mathrm{cst}_{b_0})$ is in the image of $i : F \to F_p$. And now that $h_t$ is a homotopy between $ih_1$ and the identity, while the restriction of $h_t$ is a homotopy between $h_1i$ and the identity. Thus $F$ and $F_p$ are homotopy equivalent.
Final remark: it's much simpler to prove that $F$ and $F_p$ are weakly homotopy equivalent, because the map $i$ induces easily an isomorphism on all homotopy groups. The square
$$\require{AMScd}
\begin{CD}
E @>>> E_p \\
@VVV @VVV \\
B @>>> B
\end{CD}$$
induces a map between the long exact sequences of the respective fibrations:
$$\begin{CD}
\dots @>>> \pi_n(F) @>>> \pi_n(E) @>>> \pi_n(B) @>>> \pi_{n-1}(E) @>>> \dots \\
@. @VVV @VVV @VVV @VVV @. \\
\dots @>>> \pi_n(F_p) @>>> \pi_n(E_p) @>>> \pi_n(B) @>>> \pi_{n-1}(E) @>>> \dots
\end{CD}$$
Since $E$ and $E_p$ are homotopy weakly homotopy equivalent ($PB$ is contractible), and so by the five lemma and induction, the maps $\pi_n(F) \to \pi_n(F_p)$ are isomorphisms.
Consider the bundles $f_0^*(E)\to X$ and $H^*(E)\to X \times I$. By the theorem which is mentioned you get the bundle map
$$\begin{array}{c}f_0^*(E) \times I &\to &E\\
\downarrow && \downarrow \\
B\times I &\to & B\end{array}
$$
By the universal property of a pullback, the given maps give us a bundle map to $H^*(E)$:
$$\begin{array}{c}f_0^*(E) \times I &\to &H^*E\\
\downarrow && \downarrow \\
B\times I &\stackrel {id} \to & B \times I\end{array}
$$
But by restricting you get that this is a bundle isomorphism. But by restricting to $B\times 1$ you also get a bundle isomorphism $f_0^*E \to f_1^*E$.
Let me know if you would like to have further assistance.
Best Answer
Fibrations are a generalization of fiber bundles. When fiber bundles occur in homotopy theory, the primary usefulness is that they have the homotopy lifting property (aka covering homotopy property.) So the definition of "fibration" is purely a way to extend the notion of "fiber bundle" as broadly as possible and still be useful in homotopy theory.
The fibers are only constrained to be homotopy equivalents (assuming $B$ is path connected.) So the fiber over $x$ and the fiber over $y$ can have different dimensions, even one being a single point while the other is any contractible space.
There are plenty of maps which are not fibrations. For example, any map from a closed interval of the reals numbers onto the circle is not a fibration.
A simple example of a fibration which is not a fiber bundle is to take an acute triangle for $E$ and one of its edges for $B$. Then define $\pi:E\rightarrow B$ as the orthonormal project of $E$ onto $B$. Then the fibers at the end points are just single points, while the fibers everywhere else are closed intervals.