I have noticed a long time ago that the true read length may not exactly match the promised read length in the analysis name e.g. 2x100bp Illumina data frequently consists of 101bp reads. Today I looked into a dataset that systematically has 97 or 96 bp reads for the promised 2x100bp across many files. Why does this happen and should it be interpreted in any way? 

Thanks in advance for the comments!
The explanation for having one base more than expected (e.g. 101 instead of 100), is that for Illumina data, the phasing for each position in the read depends also on the data from the next base, so the last base in the read will always have a much worse base quality, because there is no data from a next base. So by having 101 instead of 100 bases you should get 100 bases with reliable base qualities.

For the cases where there are 96 or 97 bases, I'm guessing that either the run ran out of reagents, or else the base qualities at the 3' ends of the reads were poor and someone has already trimmed the last few bases.