I pasted your complete example into sqlworksheet and got these results (at end of post). Are you sure, that this work? I didn't find "ACCEPT" in the reserved words-list of the Oracle HTML-Manual. Maybe it don't work in my version 8.0.5 or not on NT 4.0?
SQLWKS> set serveroutput on
Server Output ON
SQLWKS> accept 1 prompt "Enter a table name: "
2> accept 2 prompt "Enter a field name: "
3> define dot = '.'
4> declare
5> tmp &&1&&dot&&2%type;
accept 1 prompt "Enter a table name: "
*
ORA-00900: invalid SQL statement
SQLWKS> begin
2> select &&2 INTO tmp from &&1 where rownum < 2;
3> dbms_output.put_line(tmp);
4> end;
5> /
select &&2 INTO tmp from &&1 where rownum < 2;
*
ORA-06550: line 2, column 8:
PLS-00103: Encountered the symbol "&" when expecting one of the following:
( * - + all mod null <an identifier>
<a double-quoted delimited-identifier> <a bind variable> avg
count current distinct max min prior sql stddev sum unique
variance cast the
<a string literal with character set specification>
<a number> <a single-quoted SQL string>
SQLWKS> undefine 1
2> undefine 2
3> set serveroutput off
4>
undefine 1
*
ORA-00900: invalid SQL statement