As the error says: You don't have a table name ECORE.V_TABLE in your database.
The misunderstanding here is that you assume that the value of the variable V_TABLE is used in the GRANT statement. However, you have a dynamic component here and need dynamic SQL for that. Thus, you should build a string with the GRANT statement and execute the string using the EXECUTE IMMEDIATE statement. (You can also drastically simplify the loop.)
Code:
CREATE PROCEDURE ADMINISTRATOR.GRANT_PRIVILEGES (
IN OS_USER VARCHAR(20) )
LANGUAGE SQL
BEGIN
DECLARE grantStmt VARCHAR(500);
FOR tables AS c CURSOR FOR
SELECT tabname
FROM syscat.tables
WHERE tabschema = 'ECORE' DO
SET grantStmt = 'GRANT SELECT ON ECORE."' || tables.tabname ||
'" TO "' || OS_USER || '"';
EXECUTE IMMEDIATE grantStmt;
END FOR;
END @