Start here. This is the direct spoken answer to practice first.
Why this question matters
Async streams are useful when data arrives over time or is too large to load all at once. This question checks whether the candidate thinks about memory and streaming boundaries.
IAsyncEnumerable lets a method return items asynchronously as they become available. I would use it when reading data from an async source and I do not want to load everything into memory first. A normal IEnumerable is fine for in-memory data. With IAsyncEnumerable, the caller can await each item and pass cancellation while the stream is being consumed.