Bias is not necessarily bad, even though the term bias usually has a negative connotation. In fact, in machine learning, inductive bias is quite important and necessary. For example, if you want to learn a function $f(x) = y$, where $x \in \mathcal{X}$ and $y \in \mathcal{Y}$, you often just have a finite dataset $\mathcal{D} = \{ (x_i, y_i)\}_{i=1}^N$, which may not contain all possible $(x, y)$ pairs associated with $f$. In that case, $\mathcal{D}$ may not contain enough information to learn $f$, so you need to assume that $f$ behaves in a certain way or that the input and output spaces have certain characteristics. A typical way of dealing with finite datasets is to introduce noise during the learning process (which is a regularization technique).
However, bias can lead to sub-optimal solutions. For example, you could assume that $f$ is a lot more complex than the function $\hat{f}$ that maps $x_i$ to $y_i$ (of $\mathcal{D}$), for $i=1, \dots, N$. So, to solve this issue, you could introduce a lot of noise, while, in reality, $\hat{f}$ may be extremely similar to $f$, even though not exactly the same, so, in reality, you may not need all this noise.
Why is low variance desirable? Essentially, while you are learning something, it is easier to learn regular patterns as opposed to more irregular ones. For example, $1, 2, 1, 2, 1, 2$ is a relatively regular sequence compared to $8, 2, 5, 6, 1, 7, 99$, which is thus harder to learn (or memorise) than the former.