The main difference I've noticed is that the core devs in the rust community are, above all, extremely thoughtful and systematic about how language changes address the core language goals. The zig devs I've interacted with seem much more focused on having a clean developer experience instead of trying to find elegant solutions to hard language design problems. That's not necessarily a bad thing, but it's a very different thing. In particular, the borrow checker is enforcing rules 99% of your pointer code should be following anyway.
The main complaint about the borrow checker is that what seem like trivial changes can have subtle implications that require wildly different ownership patterns to be made correct. Rust tells you something's wrong. If you don't thoroughly understand how you're using pointers (which few people do), it can feel like trivial changes exploding into much larger refactors than you'd need in languages where the rules aren't statically enforced.