It all depends on what your use case is.
Firstly, ngModel supports Two-way binding with [()] syntax, meaning youre able to sync the value in the view to the component and vice versa. While template referenced variables allows only One-way access (read-only).
Another advantage ngModel has over template referenced variables, is that it supports form validation features, while with template referenced variables, it only allows manual validation.