I can't say with any certainty, but it looks like the custom taxonomies should be less intensive than the custom fields.
Custom fields are stored as meta data in the postmeta table. Each row in that table contains a unique ID for the meta entry, the ID of the post to which the meta data belongs, the meta key and the meta value (which can be an integer, a string or a serialized array). Assuming the meta value is a simple string or integer, the difference is probably minimal; but if the meta value is an array, you would have to retrieve the entire meta value and process it before you could run any comparisons.
The terms, however, are all stored in their own table. Each row in the term_relationships table has the ID of the post to which it's related, the ID of the term itself and order in which the term should be displayed (if applicable). Therefore, it can be more easily compared.
Again, since your custom field values all appear to be simple strings, the difference between comparing the custom field value and comparing a custom taxonomy value is probably negligible (though, I believe there is a tiny bit of advantage comparing integers instead of strings); but if you were collecting serialized data in your custom fields, the custom taxonomies would give you a huge advantage.