Has the author confused M-Expressions and F-Expressions or am I misreading this?

F-expressions are functions taking unevaluated arguments, sort of a mixture of a macro and a function. It executes at runtime, whereas a macro executes at compile time(technically macro-expansion time). They were abandoned in mainstream LISP early on. However, John Shutt ironed out some of the issues with fexprs in his PhD thesis, which is a good read if you're interested in lisp internals[1]. He also designed a scheme like lisp dialect incorporating fexprs, called Kernel.

[1]: https://web.wpi.edu/Pubs/ETD/Available/etd-090110-124904/

Kernel and it's successor wat (https://github.com/manuel/wat-js) has some great stuff, I personally prefer open composition from maru https://www.piumarta.com/freeco11/freeco11-piumarta-oecm.pdf as it combines fexprs and macros into one construct.