On the MSDN website , the definition for the Stream class
Provides a generic way to see a byte stream.
link
Analysis
However, I disagree with them as to what is summed up in this simple sentence above. Stream, imagine a flow , which can be either unidirectional or bidirectional. Byte array is closely linked to primitive data, it's close enough, however with Stream you gain more features and better management by .NET.
Scenario
You mentioned that these files are not great, I understood that your idea is to pass the entire file to an array of bytes, even if they are not large, it would not be the correct one. Working with Streams you grant more autonomy to the GC to take care of this part for you and guarantee performance to your service, also being able to use virtual memory. Because you're on the side of a server, you have to ensure performance and low power consumption.
Stream vs. Array Bytes
Flexibility for manipulation.
More autonomous memory management for the GC.
Functions that characterize a better defined object.
Async.
Useful and objective properties.
Thread-Safe wrapper.
Disposable.
Buffer can also be located in virtual memory for files.
Additional information
Everything was based on experiences I had, may have more details that I may have forgotten.
I will leave a link below that is simple and objective regarding Stream Operations in WCF.
link