The main difference between these two is.
- Every time a record is updated and meets the condition requirements : Which means every time the records is updated and it meets the criteria or conditions you mentioned it will fire irrespective of previous values. Here you no need to update the fields which you mentioned in the flow start conditions.
- Only when a record is updated to meet the condition requirements: This means you have to update some fields in the record such that it should satisfy the condition mentioned in the flow. Which means "allows you to launch flows only when the triggering record changes from not meeting the specified requirements to meeting them"
Example: Suppose you have condition that stagename of opportunity should be Closed Won.
If you keep first option then this flow will update if the opportunity is "closed won" and any other field is updated it need not be stagename.
If you put the second option then this flow will only update when the stagename is changed from some other stage to "Closed Won".
Please find the below article for the same