I lol'd at the title. Just having a Gruntfile is the first smell I notice when looking at a project. Seriously, why take two simple tools and layer a unnecessary "task runner" on top of them?
I generally prefer Make as well and I even made the case for Make when Grunt.js was first announced [1]. That said, I did use Grunt on a recent project and it worked out reasonably well. For myself, I'd prefer to keep using Make, but for many teams, Grunt is a reasonable choice.
I chose Grunt because Make generally requires a lot more background knowledge and ongoing discipline. Most Grunt tasks are configured by relatively constrained JSON data, so it's pretty hard for non-experts to muck it up unless they need to write a custom task. A Makefile would have created much greater education burden for me. That's particularly a concern when the team's Make/shell expert has time-limited involvement with the project.
I find having a "standard" way to run tasks enormously beneficial especially when working with developers cross-platform. Whatever OS you are running, just grunt and all is well. :)
It makes sense when you use it with grunt-contrib-watch. Then you just keep it running as you are developing and listen for the error "ding" after a save.