Sure, I can explain to you why it works.
First, let’s say a Fibonacci-type sequence is any sequence where each value is the sum of the previous two. It doesn’t have to have the same starting values as the ordinary one; it can have any starting values you like. It just has to then proceed by the usual Fibonacci rule.
Note that, if you had any value m such that m[sup]2[/sup] = m + 1, then the sequence of powers m[sup]0[/sup], m[sup]1[/sup], m[sup]2[/sup], m[sup]3[/sup], etc., would be a Fibonacci-type sequence. Let’s suppose we have such an m for the time being.
The first term would be 1 (which is as good as 1 + 0 * m) and the next term would be m (which is as good as 0 + 1 * m). After that, each term would be the sum of the previous two (so we would get 1 + 1 * m, and then 1 + 2 * m, and then 2 + 3 * m, and then 3 + 5 * m). In general, we would find that m[sup]n[/sup] = F(n - 1) + F(n) * m. So if we also had some operation H such that H(a + b * m) = b, we could recover F(n) as H(m[sup]n[/sup]). Again, let’s suppose we have such an operation for the time being.
By squaring both sides of the identity m[sup]n[/sup] = F(n - 1) + F(n) * m, we find that m[sup]2n[/sup] = (F(n - 1) + F(n) * m)[sup]2[/sup]. Expanding this out (including using the expansion m[sup]2[/sup] = m + 1), and then applying H, we get F(2n) = H(m[sup]2n[/sup]) = 2F(n - 1)F(n) + F(n)[sup]2[/sup].
Furthermore, we can rewrite 2F(n - 1)F(n) + F(n)[sup]2[/sup] as [2F(n - 1) + F(n)]F(n). And (renoting what others have noted above) we can rewrite the [2F(n - 1) + F(n)] as [F(n - 1) + F(n - 1) + F(n)], which in turn equals [F(n - 3) + F(n - 2) + F(n - 1) + F(n)], which equals [F(n - 3) + F(n) + F(n)], which is to say, [F(n - 3) + 2F(n)]. Plugging this back in, we’ve found that F(2n) = [F(n - 3) + 2F(n)]F(n), just as noted in the OP.
But how do we know there’s such a thing as m and H? Well, just like we can arbitrarily invent an i which squares to -1 and maintain familiar rules of arithmetic to get complex numbers, from which “real” and “imaginary” parts can be extracted, similarly, we can arbitrarily invent an m such that m[sup]2[/sup] = m + 1 and maintain familiar rules of arithmetic to get an appropriate number system for this task (with H being the appropriate part-extracter).
If you’re unhappy doing things so abstractly, you might also think of m as the linear operator on Fibonacci-type sequences which shifts the starting point over by one. The rules of Fibonacci-type sequences are such that m[sup]2[/sup] = m + 1 by definition. We can then think of H(an operator) as the first value of the sequence you get from applying that operator to the Fibonacci-type sequence starting 0, 1, … (i.e., to the standard Fibonacci-type sequence).