For some applications, that's not entirely true anymore. Multi-Level Cells in FLASH are not 1 or 0, there's several inbetween.
In asynchronous (i.e. clock-less) electronics there's been some different approaches too: 1, 0, or not sure yet...
Binary logic dominates in CPUs because with volts/no volts representing 1 and 0, there's practically no calibration to incorporate into a manufacturing process. With multi-level logic, e.g. 1, 2/3, 1/3, 0 (2 bits) suddenly it all becomes a lot harder to build.
However, in communications multi-level representation of data is pretty common. QAM (quadrature amplitude modulation, see Wikipedia) involves multiple signal amplitudes, a far remove from simple binary on/off keying. In communications such schemes are used to get more data through a given signal bandwidth. It's the equivalent of storing more than 1 bit in a single memory cell (which is what MLC Flash is doing).
Of course, the reason such signalling isn't used on, say, the memory bus between RAM and CPU is because it takes a lot of electronics to generate and receive such a signal; not good for speed / power. RAM buses these days are complicated enough, what with their propagation de-skew delay lines, more than 1 bit on the PCB trace at a time, etc. But complex modulations are used on links like Thunderbolt, USB3, Ethernet. There's way more than one bit on the wire at any single point in time.
Really these days most high speed buses inside and outside of computers are RF data links, not just a single voltage level on a PCB trace.