IReadOnlyCollectionやIReadOnlyListはリストのSet, Clear系を使えなくできるため堅牢なコードにつながります。Unity C#のバージョンが上がるのを楽しみにしてた理由の一つです。
ですがこのinterfaceはパフォーマンスという視点では危険をはらんでいます。
JacksonDunstan.com | 5 Common Misuses of Collections
JacksonDunstan.com covers game programming
foreachでGCalloc
またかよって感じですが、残念ながら余裕でgcallocします。どうしようもないです。Unity2019.3.0b9 IL2CPP
対策
IReadOnlyListのforループならgc allocは発生しません。なのでIReadOnlyCollectionを使わず、IReadOnlyListだけ使うようにしましょう