In the early computing systems it was easier to use two hard states 0 and 1 rather than three or more discrete levels as it means that you can hard switch your devices. Once your programming schemes are based around binary and working well, why change to another system.
What would be the advantage of using a tri-state logic in the majority of applications? This needs to be considered both from speed of processing and ease of implimentation.