This is a rather broad question, and as a Guix user I might perhaps not have the whole picture, but the primary differences are, to my understanding:
- Guix does not package any proprietary software in
the official repo; Nix however, does.
- While Nix use systemd, Guix use GNU Shepherd.
- Nix configuration is in a domain specific language that has taken some inspiration from Haskell, whereas Guix use Guile, a scheme language, for most of the system configuration, including services.
- Nix supports GNU/Linux and MacOS, Guix supports GNU/Linux and Hurd.
- Nix was established in 2003, Guix in 2013, and so Nix might be more mature.
- In my experience, Guix is more of an "unexplored frontier", and as such, there are many times when you will encounter issues that you might not be able to find an answer to on the internet (at least more frequently than with Nix).
If you are more interested, I recommend this video comparing the two in more detail.