get_comments_number() vs. get_post_field( ‘comment_count’, ID )

They are pretty much the same. You really can’t say one is better. One has a specific and the other one a more general purpose – that is it. Personally I tend to go with the specific ones, but that is only a personal preference. In summary, just chose which one you want to use.

Addition from @TheDeadMedic

(…) the latter also uses the filter get_comments_number, which some plugins like Disqus might use to intercept the value. With WordPress, the general consensus is: if a function exists for a specific purpose, use it, even if there are “other ways” to do it.