I took the first quote as you need to hold a certain amount of comfort with lisp before macros matter, not that they aren't an incredible once you understand everything well enough to use them.
I can definitely see their power, but I don't have any ideas on what I would do with them. I guess I'd have to write Lisp for awhile to figure that out.
One way to think about macros is custom syntactic sugar that you can build yourself. So for example, I don't think rust has parameter array (see params/param arrays in c# for an example [1]). So for things like their println that takes variable number of strings to inject into the string where it finds {} it uses the println! and format! macros. Because the parser doesn't support the sugar of a comma separated list and turning that into an array the way c# does (or however other languages handle the same idea), the macro pass of the compiler instead generates the code necessary to make that number of arguments work.
There are likely other uses I've never considered, but that is a simple one.
This article is an appendix for the online book Beautiful Racket, and most of the book is about how useful macros can be. It's a very accessible book - not at all advanced.
A number of folks have listed the book as one of their best all time programming books. I finally read it last year, and I agree with that characterization. It's a very well written book.
This is the case for me as well. I was learning Common Lisp for fun, and I loved it, but macros never clicked for me. I could understand how they're powerful, but I never developed a sense for when using a macro would make things easier. Probably just not enough time with the language.