What is the running time of an algorithm? To answer this question, we need to specify an exact computation model with a cost for each operation. Whatever computation model you choose to use, it is highly unlikely that the running time of an algorithm on an input of size $n$ is exactly $n$. It is far more likely to be of the form $an+b$ for some constants $a,b$, and even more likely to vary a bit with the exact input, but to be bounded by some expression such as $an+b$.
As an example, consider the following algorithm for computing the maximum of an array $A,\ldots,A[n]$:
max = A
for i = 2, ..., n:
if A[i] > max:
max = A[i]
Let us convert it into "machine instructions":
max = A (1)
i = 2 (2)
LOOP: if i>n, jump END (3)
if A[i]≤max, jump CONT (4)
max = A[i] (5)
CONT: i = i + 1 (6)
jump LOOP (7)
END: return max (8)
Let's assume that each line costs $1$ time unit (this is a quite arbitrary assumption). How much time does the algorithm take on an input $A$ of length $n \geq 1$?
Lines $1,2,8$ run once. Line $3$ runs $n$ times each. Lines $4,6,7$ run $n-1$ times each. Line $5$ runs once per "left-to-right record" of $A$ beyond $A$, which can be any number of times between $0$ and $n-1$. In total, the running time is between $3+n+3(n-1)$ to $3+n+4(n-1)$, that is, between $4n$ and $5n-1$.
If we choose a different cost model, we will likely get a different running time. However, this running time will likely still be $O(n)$. This is why big O notation is so useful – it hides such details.