There's an asymmetry because members of O(n) include rotation with random angle and flips with random axis, for $n=2$, the fraction of flips is large, those are $-1,1$ peaks. For larger $n$, bulk of matrices are pure rotations.
Flipping sign of first row makes eigenvalue distribution uniform:
negateFirstRow[A_] := {-A[[1, All]]}~Join~A[[2 ;;, All]];
sampleO[n_] := RandomVariate[CircularRealMatrixDistribution[n]];
sampleSO[n_] :=
With[{mat = RandomVariate[CircularRealMatrixDistribution[n]]},
If[Det[mat] > 0, mat, negateFirstRow@mat]];
n = 4;
numSamples = 100000;
SF = StringForm;
label = SF["Eigenvalues for O(``)", n];
Histogram[Arg /@ Flatten[Table[Eigenvalues@sampleO@n, {numSamples}]],
PlotLabel -> label, AxesLabel -> {"arg", "freq"}]
label = SF["Eigenvalues for SO(``)", n];
Histogram[Arg /@ Flatten[Table[Eigenvalues@sampleSO@n, {numSamples}]],
PlotLabel -> label, AxesLabel -> {"arg", "freq"}]