I know it's quite weird, but the whitespaces (crlf, spaces...) between your inline block divs make the space.
If you remove them, the space goes off. (plunker demo)
I couldn't find any reference for explanation but my guess is that since the characters are between inline blocks, it's interpreted as a space as if block elements were actually inline ones (e.g. spans).
<body ng-app="testRepeat">
<div class="red" ng-controller="TestCtrl">
<div class="blue number" ng-repeat="number in array1 track by $index">{{number}}</div><div class="green number" ng-repeat="number in array2 track by $index">{{number}}</div><div class="teal number" ng-repeat="number in array3 track by $index">{{number}}</div>
</div>
</body>