The first/last stitch is always a bit loose, just because it's only anchored on one side. One way to reduce the looseness is to make sure you knit the first stitch very tightly, and let the loose stitch kind of wrap itself around the needle.
Another way to avoid loose end stitches is to slip the first stitch of every row. This way it only gets knit every other row and the looseness is reduced.
So you're not doing anything 'wrong.' You just need to compensate for what happens naturally.