Why do you think it is not correct? Would dsolve lie? That dsolve code must be pretty darn tricky.
In fact, you have not used dsolve completely properly, because you never supplied the initial condition. You could have done so after the fact though, by solving for C in your solution such that the initial condition applies.
eqn = diff(x) == 2*sin(3*t) - 4*x;
xsol = dsolve(eqn,x(0) == 0)
Is that the solution? Does it satisfy the initial condition?
Clearly it satisfies the initial condition.
It does satisfy the ODE.