A beautiful trigger issue. Flawed logic? Updating Orderheader when orderlines are complete
Your trigger checks all orderlines for completeness even when only one is updated. You should use the :NEW table prefix to filter the currently updated record.
There is no need to include the table orderHeader while counting
There is no need for a group-by  


Try the following:

CREATE OR REPLACE TRIGGER orderComplete
   AFTER UPDATE ON orderline
 FOR EACH ROW -- Added after comment by a1ex07 
 DECLARE ordersNotDone NUMBER;
 BEGIN
    SELECT COUNT(Orderline_fulfilled)
      INTO ordersNotDone
      FROM orderline
     WHERE orderline_order = :NEW.orderline_order
       AND orderline_fulfilled = 'N';

    IF ordersNotDone = 0
    THEN
        UPDATE orderHeader
        SET order_completed = sysdate
        WHERE order_id = NEW:orderline_order;
    END IF;
END;