Pass along field delta value to a rendered entity in an entity reference field
I did something like this in Drupal 7 and did have caching issues as 4k4 mentioned, but I think the cache issues would be easier to avoid in D8. I think you could do this by creating a new Field Formatter that extends EntityReferenceEntityFormatter. 

You should be able to alter just the viewElements() method and add the delta information to the referenced entities. You'll have an issue with the view mode being cached with your delta info. For example, you may have an entity be the first item the first place it's referenced and the second item the second place it's referenced, but it'll be cached from the first call so your delta alterations won't work how you'd expect. I think you can update the #cache settings for the entities and add a new key for the delta. I would start by calling parent::viewElements() and then make a pass through that result to make the alterations (adding the delta value and updating the cache settings). I think this will work, but I still get confused by the different caching layers in D8. 

I would still alter the field template for the parent EntityReference field and add the class to a wrapping div rather than on the entity itself. You could create your own template file and add your own theme suggestion to make it more reusable, something like field__zebra, rather than relying on the default theme suggestion you mentioned above, field__my_field_name. I love Display Suite so I would create a Zebra DsFieldTemplate that I could easily reuse on any field I wanted.