Before answering that question, let's try to understand/interpret the scenario in the example image you have provided. Although it may not be the case but it may provide us some direction.
Looking at the image, it is evident that it is not a traditional contact list since it is part of an Agile CRM system. One may require more information than just email or have more than just edit option to work with. These systems include tons of information about a person and in such a scenario a table makes more sense since we will have to represent data about one source in an intuitive and readable manner.
So back to your question, what to use when. Let's take a similar example to get to the answer
Let's assume the dataset to be something like this
Name, Email, Number, Social connections, Tags, Location, Designation,
Now say that the use case requires you to show almost everything because a location can be an action or a link and Social connections may redirect to their respective social media page, then a table would suit here since it will lay out everything in a consistent and orderly fashion.
But let's say you don't want all these and just want to show few details and a couple of actions then a list would do. Because the final usage result would be different in this case.
Now there is a mid way between these two as well. A list of card which can show multiple pieces of data arranged in the way you want them to be. For ex: arranged against information priority which a table does but only as columns, Grouping certain piece of information which, again, doing it in a table would make it clumsy. In such cases, a list of card would help quite a lot and also make it look a little more interesting.
There is a lot you can tell by just looking at the dataset and the requirement. I may have not been able to tell them all but I hope I was able to help you at least streamline some thought process for such problems.
I hope if not the solution I was able to direct it somewhere useful.