The default behavior dynamical updating system of `Manipulate`

is to change certain settings that tend to speed up a computation when a control is being actively manipulated. For instance, it sets `$ControlActive`

to `True`

and `$PerformancGoal`

to `"Speed"`

For plots, this lowers the number of points of the graph computed by lowering `MaxRecursion`

to `0`

. For other plotters, `PlotPoints`

might be lowered, but that does not seem to be the case.

One can override the default in either of the two ways:

Manipulate[
Block[{$PerformanceGoal = "Quality"},
ContourPlot[a x^2 - 2 x + a y^2 == 0,
{x, -0.2, 4.}, {y, -2.1, 2.1}]
],
{{a, 1.}, 0., 2.}
]
Manipulate[
ContourPlot[a x^2 - 2 x + a y^2 == 0,
{x, -0.2, 4.}, {y, -2.1, 2.1},
MaxRecursion -> 2],
{{a, 1.}, 0., 2.}
]

Both methods work fast enough in this case. In general, one can exercise finer control by using `$ControlActive`

:

MaxRecursion -> If[$ControlActive, 1, 2]