I use it routinely and it's very nice. It has some language smart, and for example understand code comments, and can format comments nicely. It also has smart to recognize line header, and reformat while keeping those headers, with possibly a different first line. So if you introduce item (unnumbered list) with a "-" for example, you can either align the second line to the "-" or to the start of the text after, your choice. `fill-paragraph` will recognize this and stick to your choice when reformatting the paragraph.
I can't compare with `par`, which I've never used. But I'm a very happy user of Emacs M-q.
This documentation page "https://www.gnu.org/software/emacs/manual/html_node/emacs/Fi..." doesn't do it justice, because Emacs will often do smart language- and context-appropriate things in different buffer modes.
For example, I use this feature heavily to help make my Markdown files appear semi-wysiwyg to anyone viewing them in plain text (e.g., different levels of bulleted/numbered lists are formatted).
It also keeps my code comments tidy, and encourages me to keep them up to date, because I don't have to mess with formatting.
There's also a command to temporarily set a "fill prefix" based on the point in the current line, such as if you want to fill something differently than how Emacs would do it by default.
shell-command-on-region, IIRC.
If you want to replace a section of text, not just see the output in another buffer, use C-u M-|
Welcome to the Emacs shell
/tmp $ set-variable `x 6; echo $x
6
/tmp $
M-: (term "pwsh") PowerShell 7.4.0
PS /tmp> set-variable `x 6; echo $x
6
PS /tmp>
Disturbing.