The solution uses complex numbers, but its values are real and correct:
sol1 = DSolveValue[{eq, i[0] == i0}, i, t]
FullSimplify[{eq, i[0] == i0} /. i -> sol1]
Block[{\[Gamma] = 1, \[Mu] = 1, \[Lambda] = 1, i0 = 1},
Plot[sol1[t], {t, 0, 1}]]
You can get an expression that uses only real objects this way:
sol = DSolveValue[eq, i, t]
param = Solve[sol[0] == i0, C[1], Reals]
mySol[t_] =
FullSimplify[
sol[t] /. param[[1]] /. ConditionalExpression -> (#1 &)]
Simplify[{eq, i[0] == i0} /. i -> mySol]