Numerical integration always is just an approximation. While integration would be summing up an infinite number of infinite small values, numerical integration basically sums up a larger number of rather small values. Taking into account rounding errors and the like, it does matter if the factor is only used once in front of the integral or if it is used in every summand.
Given that, it can be said that you get the more accurate results by placing the constant factors outside of the integral.
So the small differences you experienced are just numerical inaccuracies, a summation of round-off errors, etc.
It sometimes helps to set the system variable TOL to a lower value (default is 10^-3), but you may run into troubles (calculation not converging) if you set it too low.
10^-11 is too small in my opinion, but in case of your calculation it makes for equal results.

Setting TOL to 10^-12 lets the last integral fail.
So generally its better to make it easier to the numerics to get a more accurate result. In your case you may also place Vpk^2 in front of the integral.
Another option may be using the symbolics.
Assign the result to a function in all input variables.
You may either do it before you define these variables or use clear.sym(...) to make them unknown to the symbolic engine.
This way may be especially useful if you intend to experiment with different sets of input values and want compare the results

Of course if you really intend to do so, it would make sense to make Vrms and only fL fcuntion arguments and calculate Vpeak and omega inside the function definition
