The author's point seems fairly clear to me: there are some types of metaprogramming where the "why" is reasonably discoverable, and other types where it is not. "Magic" is often used as a derogatory umbrella term for any kind of metaprogramming, but in fact we all use metaprogramming on a regular basis, and generally the umbrella term is used to disparage metaprogramming that I, the center of the universe, am not familiar with.
I think the point is well-taken. Much of programming is metaprogramming; it's a matter of which parts you've familiarized yourself with and which you haven't, and it dumbs down the discourse when people misuse the word magic to describe discoverable forms of metaprogramming. It would be better to specifically critique individual forms of metaprogramming so that we can have productive discussions about those forms.