So the question explains itself, since both have the same options, when is each one more appropriate ?
Voting to close should be your go-to action when you see questions that are off topic, unclear or duplicates. Flagging should be used when a question needs moderator attention. This is used for spam, offensive posts or other situations where moderator intervention is needed.
Flagging to close allows lower rep users to bring questions that should be closed to the attention of higher rep users and moderators, who have the power to vote to close.
When a user flags to close, it places the question in the review queue for high rep users and moderators alike. It does not show up as a moderator flag.
When a user with enough rep to vote to close should be voting to close, not flagging to close. Any flags to close by a user with more than 3000 rep, the flag will automatically be converted to a vote to close.