There is no bug. Mathematica is giving an alternative version of the expression you are expecting. They are the same in the real domain (but interestingly are different in the complex domain). You can see this by doing a numerical integration and comparing the solutions:
solb = NDSolve[{x5'[t] == -b, x1'[t] == x2[t],
x2'[t] == (k*b*Cos[fi])/x5[t], x3'[t] == x4[t],
x4'[t] == k*b*Sin[fi]/x5[t] - g, x1[0] == 0, x2[0] == 0,
x3[0] == 0, x4[0] == 0, x5[0] == m0} /. { b -> 2, m0 -> 2,
k -> 1, fi -> 2, g -> 10}, {x1, x2, x3, x4, x5}, {t, 0, 10}][[1]]
Plot[{(x4[t] /. solb) - (
x4[t] /. sola /. {b -> 2, m0 -> 2, k -> 1, fi -> 2,
g -> 10})}, {t, 0, 1}]
This plot will give numbers down at the tolerance of the numerical integration.
Maybe a mathematician will have a good explanation for why this
Integrate[(k*b*Cos[fi])/(m0 - b*t), t]
gives the solution you expect with Log[+m0] while the same expression in DSolve gives the other form (and they are identical in the Real domain).
Regards,
Neil
I hope this helps.