Your trees are showing the same thing; you are just labeling each node by the call, and the Berkeley tutorial is labeling each node by the result of that call. Compare the two pictures of fibtree(3), noting that:
$F(0) = 0$
$F(1) = 1$
$F(2) = 1$
$F(3) = 2$
You'll see there's no disagreement at all.
Perhaps it would be informative to see the tree "grow" over time as the calls are made and resolved. If we define $F(0) = 0$, $F(1) = 1$, and $F(x) = F(x-1) + F(x-2)$ for $x>1$, we can visualize how we compute $F(3)$ with a tree, where each node is a function call. I will label nodes as $F(x)$ when we don't know the answer yet, and label them with a purple number when we do.
We want to know $F(3)$:
Since $3>1$, we call $F(3-1)$ and $F(3-2)$ and wait for the result.
Since $2>1$, we call $F(2-1)$ and $F(2-2)$ from that node, and wait for the result. This is your picture.
We can immediately replace $F(0)$ with $0$ based on our function definition, and then return, making no further calls.
We can also replace all $F(1)$ calls with $1$ by our definition.
We can now evaluate $F(2)$ by adding the results of its child calls, $1+0$
And finally we can find $F(3)$ by adding the results of its child calls, $1+1$. This is Berkeley's picture.
Hopefully that clarifies the relationship between the two pictures.