you must be typing wrong table name while granting privilege to role. check the table name carefully.

I have simulated your case in my test box and no issues for me.

SQL> create user user1 identified by user1;

User created.

SQL> grant connect,resource to user1;

Grant succeeded.

SQL> conn user1/user1
Connected.
SQL> create table tab1 (name varchar2(30));

Table created.

SQL> conn /as sysdba
Connected.
SQL> create role role1;

Role created.

SQL> grant select on user1.tab1 to role1;

Grant succeeded.

SQL> create user user2 identified by user2;

User created.

SQL> grant connect,role1 to user2;

Grant succeeded.

SQL> conn user2/user2
Connected.

SQL> select count(*) from user1.tab1;

COUNT(*)
----------
0

SQL> conn /as sysdba
Connected.
SQL> alter user user2 default role connect,role1;

User altered.

SQL> conn user2/user2
Connected.
SQL> select count(*) from user1.tab1;

COUNT(*)
----------
0

SQL>
Thanks,