Why is the top left corner of the screen considered to be (0,0) and not the bottom left like in a graph?
Probably because TV and CRTs scanned from the top left. Video cards store the screen buffer in this order, too, so scan-out from the screen buffer in left-to-right, top-to-bottom reads sequentially increasing memory addresses. Addressing video RAM as a 2-dimensional array
extern int32_t screenbuf;
screenbuf = RED;
would modify the top-left pixel. My theory is that this led to graphics APIs using coordinate systems with 0,0 at the top left, even device-independent APIs (not 640x480 or whatever), because that choice mirrors direct addressing of video RAM. (and saves one subtraction every time a Y coordinate has to get mapped to a memory address.)
As some comment point out, not ALL graphical coordinate systems have the origin at the top left, but it is extremely common for graphics APIs as well as UIs, and for example window coordinates in the X Window System.