SELECT (b.descr || \' - \' || c.descr) description
FROM tbl1 a LEFT JOIN tbl2 b ON a.ACCOUNT = b.ACCOUNT
LEFT JOIN tbl3 c ON a.product = c.product
WHERE a
table1 may have only 7622 rows, but if tbl2 has more than one row with the same ACCOUNT value, or if tbl3 has more than one row where the product matches, you'll get more rows in the result set. You're effectively "multiplying" each of the tables.
EDIT: OK, an example.
Suppose tbl1 has only 1 row, and that the "ACCOUNT" is 1 and the "product" is 2. (I don't know what actual values are in the table; it does not matter).
Now suppose that tbl2 has 2 rows where "ACCOUNT" is 1. Straight away, you're going to get at least 2 rows in your results, because tbl1 will match 2 rows in tbl2.
Now if tbl3 has 2 rows where "product" is 2, you'll get 4 rows in the results, because each of the 2 results above will match 2 rows in tbl3.
So hopefully you can see why you're getting more rows than you expected. What you choose to do about it is a different matter, and depends on whether the fact that there are multiple matches in tbl2 and tbl3 indicate a problem with the data.